diff options
Diffstat (limited to 'app/tests/test_hub.py')
| -rw-r--r-- | app/tests/test_hub.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/app/tests/test_hub.py b/app/tests/test_hub.py index b3a17e8..749d2e6 100644 --- a/app/tests/test_hub.py +++ b/app/tests/test_hub.py @@ -160,6 +160,37 @@ class HubMenuTests(unittest.TestCase): ["Convert books...", "Set up a backend...", "Configure a backend...", "Server...", "Settings...", "Quit"]) + def test_ffmpeg_warning_shown_when_missing(self): + # ffmpeg not on PATH → a red notice is passed above the table. + captured = {} + + def fake_menu(stdscr, title, options, **kwargs): + captured["notice_lines"] = kwargs.get("notice_lines") + return "quit" + + screen = FakeScreen() + with patch.object(hub.tui, "menu", fake_menu), \ + patch.object(hub, "detect_all", return_value=[]), \ + patch.object(hub.shutil, "which", return_value=None): + hub._hub_menu(screen) + self.assertEqual(captured["notice_lines"], + [("Warning: ffmpeg not installed!", "err")]) + + def test_ffmpeg_warning_hidden_when_installed(self): + # ffmpeg on PATH → no notice is passed at all. + captured = {} + + def fake_menu(stdscr, title, options, **kwargs): + captured["notice_lines"] = kwargs.get("notice_lines") + return "quit" + + screen = FakeScreen() + with patch.object(hub.tui, "menu", fake_menu), \ + patch.object(hub, "detect_all", return_value=[]), \ + patch.object(hub.shutil, "which", return_value="/usr/bin/ffmpeg"): + hub._hub_menu(screen) + self.assertIsNone(captured["notice_lines"]) + def test_convert_with_no_available_backend_offers_setup(self): # One installed-but-not-ready backend → Convert is offered. The # convert menu lists no available backend, so only "Set up a |
