From c1aac28a7c0d6cddb0585be7b4e20e6f3a050586 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Sun, 29 Jun 2025 16:10:53 -0400 Subject: [PATCH] Add seed generation tests --- src/tests/test_seed_generation.py | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/tests/test_seed_generation.py diff --git a/src/tests/test_seed_generation.py b/src/tests/test_seed_generation.py new file mode 100644 index 0000000..d8bd2a8 --- /dev/null +++ b/src/tests/test_seed_generation.py @@ -0,0 +1,41 @@ +import sys +import importlib +from pathlib import Path +from tempfile import TemporaryDirectory +from unittest.mock import patch + +sys.path.append(str(Path(__file__).resolve().parents[1])) + + +def setup_password_manager(): + """Instantiate PasswordManager using a temporary APP_DIR without running __init__.""" + import constants + import password_manager.manager as manager_module + + # Reload modules so constants use the mocked home directory + importlib.reload(constants) + importlib.reload(manager_module) + + pm = manager_module.PasswordManager.__new__(manager_module.PasswordManager) + pm.fingerprint_manager = manager_module.FingerprintManager(constants.APP_DIR) + pm.current_fingerprint = None + pm.save_and_encrypt_seed = lambda seed, fingerprint_dir: None + return pm, constants + + +def test_generate_bip85_and_new_seed(monkeypatch): + with TemporaryDirectory() as tmpdir: + tmp_path = Path(tmpdir) + monkeypatch.setattr(Path, "home", lambda: tmp_path) + + pm, const = setup_password_manager() + + mnemonic = pm.generate_bip85_seed() + assert len(mnemonic.split()) == 12 + + with patch("password_manager.manager.confirm_action", return_value=True): + fingerprint = pm.generate_new_seed() + + expected_dir = const.APP_DIR / fingerprint + assert expected_dir.exists() + assert expected_dir.is_dir()