mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-09 15:58:48 +00:00
60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
import sys
|
|
from types import SimpleNamespace
|
|
from pathlib import Path
|
|
import pytest
|
|
|
|
sys.path.append(str(Path(__file__).resolve().parents[1]))
|
|
|
|
import main
|
|
|
|
|
|
def _make_pm():
|
|
return SimpleNamespace(
|
|
display_stats=lambda: print("stats"),
|
|
start_background_sync=lambda: None,
|
|
)
|
|
|
|
|
|
def test_live_stats_shows_message(monkeypatch, capsys):
|
|
pm = _make_pm()
|
|
monkeypatch.setattr(main, "get_notification_text", lambda *_: "")
|
|
monkeypatch.setattr(
|
|
main,
|
|
"timed_input",
|
|
lambda *_: (_ for _ in ()).throw(KeyboardInterrupt()),
|
|
)
|
|
main._display_live_stats(pm)
|
|
out = capsys.readouterr().out
|
|
assert "Press Enter to continue." in out
|
|
|
|
|
|
def test_live_stats_shows_notification(monkeypatch, capsys):
|
|
pm = _make_pm()
|
|
monkeypatch.setattr(main, "get_notification_text", lambda *_: "note")
|
|
monkeypatch.setattr(
|
|
main,
|
|
"timed_input",
|
|
lambda *_: (_ for _ in ()).throw(KeyboardInterrupt()),
|
|
)
|
|
main._display_live_stats(pm)
|
|
out = capsys.readouterr().out
|
|
assert "note" in out
|
|
|
|
|
|
def test_live_stats_triggers_background_sync(monkeypatch):
|
|
called = {"sync": 0}
|
|
|
|
pm = _make_pm()
|
|
pm.start_background_sync = lambda: called.__setitem__("sync", called["sync"] + 1)
|
|
|
|
monkeypatch.setattr(main, "get_notification_text", lambda *_: "")
|
|
monkeypatch.setattr(
|
|
main,
|
|
"timed_input",
|
|
lambda *_: (_ for _ in ()).throw(KeyboardInterrupt()),
|
|
)
|
|
|
|
main._display_live_stats(pm)
|
|
|
|
assert called["sync"] >= 1
|