From cc077a9762b061532270314e338f95068bc1481b Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Sun, 3 Aug 2025 19:34:27 -0400 Subject: [PATCH] test: mock legacy choice prompts --- src/tests/test_decrypt_data_legacy_fallback.py | 1 + src/tests/test_nostr_legacy_decrypt_fallback.py | 1 + src/tests/test_portable_backup.py | 12 ++++++++++++ 3 files changed, 14 insertions(+) diff --git a/src/tests/test_decrypt_data_legacy_fallback.py b/src/tests/test_decrypt_data_legacy_fallback.py index e5019bd..6172eca 100644 --- a/src/tests/test_decrypt_data_legacy_fallback.py +++ b/src/tests/test_decrypt_data_legacy_fallback.py @@ -23,6 +23,7 @@ def test_decrypt_data_password_fallback(tmp_path, monkeypatch): monkeypatch.setattr( enc_module, "prompt_existing_password", lambda *_a, **_k: TEST_PASSWORD ) + monkeypatch.setattr("builtins.input", lambda *_a, **_k: "1") legacy_key = _fast_legacy_key(TEST_PASSWORD, iterations=50_000) legacy_mgr = EncryptionManager(legacy_key, tmp_path) diff --git a/src/tests/test_nostr_legacy_decrypt_fallback.py b/src/tests/test_nostr_legacy_decrypt_fallback.py index c130230..185206c 100644 --- a/src/tests/test_nostr_legacy_decrypt_fallback.py +++ b/src/tests/test_nostr_legacy_decrypt_fallback.py @@ -25,6 +25,7 @@ def test_legacy_password_only_fallback(monkeypatch, tmp_path, caplog): monkeypatch.setattr( enc_module, "prompt_existing_password", lambda *_a, **_k: TEST_PASSWORD ) + monkeypatch.setattr("builtins.input", lambda *_a, **_k: "2") vault, enc_mgr = create_vault(tmp_path) data = {"schema_version": 4, "entries": {}} diff --git a/src/tests/test_portable_backup.py b/src/tests/test_portable_backup.py index aefc286..408e1f4 100644 --- a/src/tests/test_portable_backup.py +++ b/src/tests/test_portable_backup.py @@ -9,6 +9,7 @@ import sys sys.path.append(str(Path(__file__).resolve().parents[1])) +import seedpass.core.encryption as enc_module from seedpass.core.encryption import EncryptionManager from seedpass.core.vault import Vault from seedpass.core.backup import BackupManager @@ -71,6 +72,17 @@ def test_corruption_detection(monkeypatch): content["payload"] = base64.b64encode(payload).decode() path.write_text(json.dumps(content)) + def _fast_legacy_key(password: str, iterations: int = 100_000) -> bytes: + return base64.urlsafe_b64encode(b"0" * 32) + + monkeypatch.setattr( + enc_module, "_derive_legacy_key_from_password", _fast_legacy_key + ) + monkeypatch.setattr( + enc_module, "prompt_existing_password", lambda *_a, **_k: PASSWORD + ) + monkeypatch.setattr("builtins.input", lambda *_a, **_k: "1") + with pytest.raises(InvalidToken): import_backup(vault, backup, path, parent_seed=SEED)