diff options
| author | historia <historiavg@proton.me> | 2026-08-31 19:45:57 -0400 |
|---|---|---|
| committer | historia <historiavg@proton.me> | 2026-08-31 19:45:57 -0400 |
| commit | 10e72d4960e865acf5346ab8cf518ed5844fe45c (patch) | |
| tree | adf8c10386b9da6280c247f1fed137ef1a514157 /app/tests/test_runview.py | |
| parent | 4bd0282da65db9f118ef5250582ab67079fad538 (diff) | |
| download | tts-audiobook-generator-10e72d4960e865acf5346ab8cf518ed5844fe45c.tar.gz | |
feat: generate a book with all installed models to compare
Diffstat (limited to 'app/tests/test_runview.py')
| -rw-r--r-- | app/tests/test_runview.py | 39 |
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, |
