Files
sshecret/tests/test_password_readers.py
2025-03-17 21:42:56 +01:00

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()