diff --git a/src/tests/test_cli_portable_backup_commands.py b/src/tests/test_cli_portable_backup_commands.py deleted file mode 100644 index c819588..0000000 --- a/src/tests/test_cli_portable_backup_commands.py +++ /dev/null @@ -1,46 +0,0 @@ -import sys -from pathlib import Path -import runpy - -import pytest - -sys.path.append(str(Path(__file__).resolve().parents[1])) - -import main -from password_manager.manager import PasswordManager - - -def _run(argv, monkeypatch): - monkeypatch.setattr(sys, "argv", ["seedpass"] + argv) - monkeypatch.setattr(main, "load_global_config", lambda: {}) - called = {} - - def fake_init(self, *args, **kwargs): - called["init"] = True - - def fake_export(self, dest): - called["export"] = Path(dest) - - def fake_import(self, src): - called["import"] = Path(src) - - monkeypatch.setattr(PasswordManager, "__init__", fake_init) - monkeypatch.setattr(PasswordManager, "handle_export_database", fake_export) - monkeypatch.setattr(PasswordManager, "handle_import_database", fake_import) - - with pytest.raises(SystemExit): - runpy.run_module("main", run_name="__main__") - - return called - - -def test_export_command_invokes_handler(monkeypatch): - called = _run(["export", "--file", "out.json"], monkeypatch) - assert called["export"] == Path("out.json") - assert "import" not in called - - -def test_import_command_invokes_handler(monkeypatch): - called = _run(["import", "--file", "backup.json"], monkeypatch) - assert called["import"] == Path("backup.json") - assert "export" not in called diff --git a/src/tests/test_manager_checksum_backup.py b/src/tests/test_manager_checksum_backup.py index 4f625ca..5b15bae 100644 --- a/src/tests/test_manager_checksum_backup.py +++ b/src/tests/test_manager_checksum_backup.py @@ -3,7 +3,7 @@ from pathlib import Path sys.path.append(str(Path(__file__).resolve().parents[1])) -from password_manager.manager import PasswordManager +from password_manager.manager import PasswordManager, EncryptionMode class FakeBackupManager: @@ -19,6 +19,7 @@ class FakeBackupManager: def _make_pm(): pm = PasswordManager.__new__(PasswordManager) + pm.encryption_mode = EncryptionMode.SEED_ONLY return pm diff --git a/src/tests/test_manager_workflow.py b/src/tests/test_manager_workflow.py index 7bc1f91..abb2bab 100644 --- a/src/tests/test_manager_workflow.py +++ b/src/tests/test_manager_workflow.py @@ -8,7 +8,7 @@ sys.path.append(str(Path(__file__).resolve().parents[1])) from password_manager.entry_management import EntryManager from password_manager.vault import Vault from password_manager.backup import BackupManager -from password_manager.manager import PasswordManager +from password_manager.manager import PasswordManager, EncryptionMode class FakePasswordGenerator: @@ -34,6 +34,7 @@ def test_manager_workflow(monkeypatch): monkeypatch.setattr("password_manager.manager.NostrClient", FakeNostrClient) pm = PasswordManager.__new__(PasswordManager) + pm.encryption_mode = EncryptionMode.SEED_ONLY pm.encryption_manager = enc_mgr pm.vault = vault pm.entry_manager = entry_mgr diff --git a/src/tests/test_parent_seed_backup.py b/src/tests/test_parent_seed_backup.py index 6c24184..728f8b0 100644 --- a/src/tests/test_parent_seed_backup.py +++ b/src/tests/test_parent_seed_backup.py @@ -5,12 +5,13 @@ from types import SimpleNamespace sys.path.append(str(Path(__file__).resolve().parents[1])) -from password_manager.manager import PasswordManager +from password_manager.manager import PasswordManager, EncryptionMode from constants import DEFAULT_SEED_BACKUP_FILENAME def _make_pm(tmp_path: Path) -> PasswordManager: pm = PasswordManager.__new__(PasswordManager) + pm.encryption_mode = EncryptionMode.SEED_ONLY pm.parent_seed = "seed phrase" pm.fingerprint_dir = tmp_path pm.encryption_manager = SimpleNamespace(encrypt_and_save_file=lambda *a, **k: None) diff --git a/src/tests/test_password_change.py b/src/tests/test_password_change.py index 8a4e4ea..83c0c61 100644 --- a/src/tests/test_password_change.py +++ b/src/tests/test_password_change.py @@ -11,7 +11,7 @@ sys.path.append(str(Path(__file__).resolve().parents[1])) from password_manager.entry_management import EntryManager from password_manager.config_manager import ConfigManager from password_manager.vault import Vault -from password_manager.manager import PasswordManager +from password_manager.manager import PasswordManager, EncryptionMode def test_change_password_triggers_nostr_backup(monkeypatch): @@ -22,6 +22,7 @@ def test_change_password_triggers_nostr_backup(monkeypatch): cfg_mgr = ConfigManager(vault, fp) pm = PasswordManager.__new__(PasswordManager) + pm.encryption_mode = EncryptionMode.SEED_ONLY pm.encryption_manager = enc_mgr pm.entry_manager = entry_mgr pm.config_manager = cfg_mgr diff --git a/src/tests/test_profile_management.py b/src/tests/test_profile_management.py index 906a789..ff35a7c 100644 --- a/src/tests/test_profile_management.py +++ b/src/tests/test_profile_management.py @@ -14,6 +14,7 @@ import constants import password_manager.manager as manager_module from password_manager.vault import Vault from password_manager.entry_management import EntryManager +from password_manager.manager import EncryptionMode def test_add_and_delete_entry(monkeypatch): @@ -25,6 +26,7 @@ def test_add_and_delete_entry(monkeypatch): importlib.reload(manager_module) pm = manager_module.PasswordManager.__new__(manager_module.PasswordManager) + pm.encryption_mode = EncryptionMode.SEED_ONLY pm.fingerprint_manager = FingerprintManager(constants.APP_DIR) pm.current_fingerprint = None pm.save_and_encrypt_seed = lambda seed, fingerprint_dir: None diff --git a/src/tests/test_profiles.py b/src/tests/test_profiles.py index 43bdfc6..c6cf5ec 100644 --- a/src/tests/test_profiles.py +++ b/src/tests/test_profiles.py @@ -5,7 +5,7 @@ from tempfile import TemporaryDirectory sys.path.append(str(Path(__file__).resolve().parents[1])) from utils.fingerprint_manager import FingerprintManager -from password_manager.manager import PasswordManager +from password_manager.manager import PasswordManager, EncryptionMode VALID_SEED = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about" @@ -22,6 +22,7 @@ def test_add_and_switch_fingerprint(monkeypatch): assert expected_dir.exists() pm = PasswordManager.__new__(PasswordManager) + pm.encryption_mode = EncryptionMode.SEED_ONLY pm.fingerprint_manager = fm pm.encryption_manager = object() pm.current_fingerprint = None diff --git a/src/tests/test_seed_generation.py b/src/tests/test_seed_generation.py index d8bd2a8..99f6e57 100644 --- a/src/tests/test_seed_generation.py +++ b/src/tests/test_seed_generation.py @@ -17,6 +17,7 @@ def setup_password_manager(): importlib.reload(manager_module) pm = manager_module.PasswordManager.__new__(manager_module.PasswordManager) + pm.encryption_mode = manager_module.EncryptionMode.SEED_ONLY pm.fingerprint_manager = manager_module.FingerprintManager(constants.APP_DIR) pm.current_fingerprint = None pm.save_and_encrypt_seed = lambda seed, fingerprint_dir: None diff --git a/src/tests/test_seed_import.py b/src/tests/test_seed_import.py index d3b3088..eb6db7f 100644 --- a/src/tests/test_seed_import.py +++ b/src/tests/test_seed_import.py @@ -8,7 +8,7 @@ from mnemonic import Mnemonic sys.path.append(str(Path(__file__).resolve().parents[1])) from password_manager.encryption import EncryptionManager -from password_manager.manager import PasswordManager +from password_manager.manager import PasswordManager, EncryptionMode def test_seed_encryption_round_trip(): @@ -22,4 +22,5 @@ def test_seed_encryption_round_trip(): assert decrypted == seed pm = PasswordManager.__new__(PasswordManager) + pm.encryption_mode = EncryptionMode.SEED_ONLY assert pm.validate_bip85_seed(seed)