mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 23:38:49 +00:00
Add message and notifications to stats screen
This commit is contained in:
13
src/main.py
13
src/main.py
@@ -264,11 +264,24 @@ def _display_live_stats(
|
|||||||
if not sys.stdin or not sys.stdin.isatty():
|
if not sys.stdin or not sys.stdin.isatty():
|
||||||
clear_screen()
|
clear_screen()
|
||||||
display_fn()
|
display_fn()
|
||||||
|
note = drain_notifications(password_manager)
|
||||||
|
if note:
|
||||||
|
print(note)
|
||||||
|
print(colored("Press Enter to continue.", "cyan"))
|
||||||
|
pause()
|
||||||
return
|
return
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
clear_screen()
|
clear_screen()
|
||||||
display_fn()
|
display_fn()
|
||||||
|
print()
|
||||||
|
note = drain_notifications(password_manager)
|
||||||
|
sys.stdout.write("\033[F\033[2K")
|
||||||
|
if note:
|
||||||
|
print(note)
|
||||||
|
else:
|
||||||
|
print()
|
||||||
|
print(colored("Press Enter to continue.", "cyan"))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
try:
|
try:
|
||||||
user_input = timed_input("", interval)
|
user_input = timed_input("", interval)
|
||||||
|
38
src/tests/test_stats_screen.py
Normal file
38
src/tests/test_stats_screen.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
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"))
|
||||||
|
|
||||||
|
|
||||||
|
def test_live_stats_shows_message(monkeypatch, capsys):
|
||||||
|
pm = _make_pm()
|
||||||
|
monkeypatch.setattr(main, "drain_notifications", lambda *_: None)
|
||||||
|
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, "drain_notifications", 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
|
Reference in New Issue
Block a user