aboutsummaryrefslogtreecommitdiff
path: root/app/tests/test_runview.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/tests/test_runview.py')
-rw-r--r--app/tests/test_runview.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/app/tests/test_runview.py b/app/tests/test_runview.py
index 5c0dc38..f8ab452 100644
--- a/app/tests/test_runview.py
+++ b/app/tests/test_runview.py
@@ -140,6 +140,31 @@ class StateTransitionTests(_FakeTui, unittest.TestCase):
view.handle_event({"kind": "server_stopped"})
self.assertEqual(view.server, "stopped")
+ def test_all_run_book_events_carry_the_model(self):
+ # "All (multiple generation)" runs stamp the generating model onto
+ # the book and book_done/book_failed events; the view keeps it for
+ # the progress line and the summary rows.
+ view, _ = self.make_view()
+ view.handle_event({"kind": "book", "index": 2, "total": 4,
+ "name": "book.txt", "model": "m1"})
+ self.assertEqual(view.book, (2, 4, "book.txt", "m1"))
+ view.handle_event({"kind": "book_done", "name": "book.txt",
+ "ok": True, "files": ["book_m1_Vivian.mp3"],
+ "model": "m1"})
+ self.assertEqual(view.book_results,
+ [("book.txt", True, ["book_m1_Vivian.mp3"], "",
+ "m1")])
+ view.handle_event({"kind": "book", "index": 3, "total": 4,
+ "name": "book.txt", "model": "m2"})
+ view.handle_event({"kind": "book_failed", "name": "book.txt",
+ "error": "chunk failed", "model": "m2"})
+ self.assertEqual(view.book_results[-1],
+ ("book.txt", False, [], "chunk failed", "m2"))
+ # A plain (single-model) run carries no model: the field stays None.
+ view.handle_event({"kind": "book", "index": 4, "total": 4,
+ "name": "book.txt"})
+ self.assertEqual(view.book, (4, 4, "book.txt", None))
+
class LogAppenderTests(_FakeTui, unittest.TestCase):
"""_LogAppender: stray console output survives in the run's log file."""
@@ -234,6 +259,20 @@ class RenderTests(_FakeTui, unittest.TestCase):
self.assertIn("book.txt", text)
self.assertIn("press any key", text)
+ def test_summary_screen_names_the_generating_model(self):
+ # An "All" run's summary rows distinguish which model generated
+ # each result (the progress line shows the model too).
+ view, screen = self.make_view()
+ view.handle_event({"kind": "book", "index": 1, "total": 2,
+ "name": "book.txt", "model": "m1"})
+ view.handle_event({"kind": "book_done", "name": "book.txt",
+ "ok": True, "files": ["book_m1_Vivian.mp3"],
+ "model": "m1"})
+ view.handle_event({"kind": "done", "ok": 1, "total": 2})
+ view.render()
+ text = self._strings(screen)
+ self.assertIn("book.txt — m1", text)
+
def test_stopping_status_shows_elapsed(self):
view, screen = self.make_view()
view.handle_event({"kind": "book", "index": 1, "total": 1,