41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
"""Test passsword readers."""
|
|
|
|
from typing import override
|
|
import unittest
|
|
from io import StringIO
|
|
from unittest.mock import patch
|
|
from dotenv import load_dotenv
|
|
|
|
|
|
from sshecret.password_readers import InputPasswordReader, EnvironmentPasswordReader
|
|
|
|
|
|
class TestInputPasswordReader(unittest.TestCase):
|
|
"""Test input password reader."""
|
|
|
|
def test_reader(self) -> None:
|
|
"""Test reader."""
|
|
input_password = "testpassword"
|
|
with patch("getpass.getpass", return_value=input_password):
|
|
received_password = InputPasswordReader().get_password("test_password")
|
|
self.assertEqual(received_password, "testpassword")
|
|
|
|
|
|
class TestEnvPasswordReader(unittest.TestCase):
|
|
"""Test environment password reader."""
|
|
|
|
@override
|
|
def setUp(self) -> None:
|
|
"""Set up environment."""
|
|
env = StringIO("SSHECRET_test=secretthing")
|
|
load_dotenv(stream=env)
|
|
|
|
def test_env_loader(self) -> None:
|
|
"""Test environment loading."""
|
|
password = EnvironmentPasswordReader().get_password("test")
|
|
self.assertEqual(password, "secretthing")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|