mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-07 06:48:52 +00:00
56 lines
1.5 KiB
Python
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()
|