Files
seedPass/src/tests/test_manager_import_database.py
2025-07-31 15:47:24 -04:00

56 lines
1.5 KiB
Python

import queue
from pathlib import Path
from types import SimpleNamespace
import sys
sys.path.append(str(Path(__file__).resolve().parents[1]))
from seedpass.core.manager import PasswordManager, EncryptionMode
def _make_pm() -> PasswordManager:
pm = PasswordManager.__new__(PasswordManager)
pm.encryption_mode = EncryptionMode.SEED_ONLY
pm.vault = SimpleNamespace()
pm.backup_manager = SimpleNamespace()
pm.parent_seed = "seed"
pm.profile_stack = []
pm.current_fingerprint = None
pm.sync_vault = lambda: None
pm.notifications = queue.Queue()
return pm
def test_import_non_backup_file(monkeypatch, capsys):
pm = _make_pm()
called = {"called": False}
def fake_import(*_a, **_k):
called["called"] = True
monkeypatch.setattr("seedpass.core.manager.import_backup", fake_import)
monkeypatch.setattr(
"seedpass.core.manager.clear_header_with_notification", lambda *a, **k: None
)
pm.handle_import_database(Path("data.txt"))
out = capsys.readouterr().out
assert "json.enc" in out.lower()
assert called["called"] is False
def test_import_missing_file(monkeypatch, capsys):
pm = _make_pm()
def raise_missing(*_a, **_k):
raise FileNotFoundError
monkeypatch.setattr("seedpass.core.manager.import_backup", raise_missing)
monkeypatch.setattr(
"seedpass.core.manager.clear_header_with_notification", lambda *a, **k: None
)
pm.handle_import_database(Path("missing.json.enc"))
out = capsys.readouterr().out
assert "not found" in out.lower()