Files
seedPass/src/tests/test_stats_screen.py
2025-07-28 13:31:15 -04:00

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