diff options
| author | historia <historiavg@proton.me> | 2026-08-24 04:53:43 -0400 |
|---|---|---|
| committer | historia <historiavg@proton.me> | 2026-08-24 04:53:43 -0400 |
| commit | 0512a932bbf3b87619b6a250f87eb7904d22d1f7 (patch) | |
| tree | dd2b0eb45823c0690ad2bc86f5aa9be2771f5b17 /app/tests/test_backends_servers.py | |
| parent | 9fb2434dcc8a1ed7bd085b453859d473de64448a (diff) | |
| download | tts-audiobook-generator-0512a932bbf3b87619b6a250f87eb7904d22d1f7.tar.gz | |
feat: hide convert/config/start-stop menus if no valid installation
Diffstat (limited to 'app/tests/test_backends_servers.py')
| -rw-r--r-- | app/tests/test_backends_servers.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/app/tests/test_backends_servers.py b/app/tests/test_backends_servers.py index 02b65e6..987ff24 100644 --- a/app/tests/test_backends_servers.py +++ b/app/tests/test_backends_servers.py @@ -123,6 +123,57 @@ class StopTests(unittest.TestCase): self.assertFalse((self.dir / "test-server.pid").exists()) +class ManagesTests(unittest.TestCase): + """manages(): a live recorded pid marks a server as ours.""" + + def setUp(self): + self._tmp = tempfile.TemporaryDirectory() + self.dir = Path(self._tmp.name) + self.specs = [ServerSpec("test", "http://127.0.0.1:9999", [])] + + def tearDown(self): + self._tmp.cleanup() + + def _write_pid(self, name, pid): + (self.dir / f"{name}-server.pid").write_text(str(pid), + encoding="utf-8") + + def test_false_without_pid_file(self): + with patch.object(servers, "LOG_DIR", self.dir): + self.assertFalse(servers.manages(self.specs)) + + def test_true_with_live_recorded_pid(self): + self._write_pid("test", 4242) + with patch.object(servers, "LOG_DIR", self.dir), \ + patch.object(servers, "_pid_alive", return_value=True): + self.assertTrue(servers.manages(self.specs)) + + def test_false_with_dead_recorded_pid(self): + self._write_pid("test", 4242) + with patch.object(servers, "LOG_DIR", self.dir), \ + patch.object(servers, "_pid_alive", return_value=False): + self.assertFalse(servers.manages(self.specs)) + + def test_false_with_corrupt_pid_file(self): + (self.dir / "test-server.pid").write_text("junk", + encoding="utf-8") + with patch.object(servers, "LOG_DIR", self.dir), \ + patch.object(servers, "_pid_alive", + return_value=True) as mk_alive: + self.assertFalse(servers.manages(self.specs)) + mk_alive.assert_not_called() + + def test_true_when_any_spec_is_ours(self): + other = ServerSpec("other", "http://127.0.0.1:9998", []) + with patch.object(servers, "LOG_DIR", self.dir), \ + patch.object(servers, "_pid_alive", return_value=True): + self._write_pid("test", 4242) + self.assertTrue(servers.manages([other] + self.specs)) + # The live pid belongs to 'test'; 'other' alone stays unmanaged. + with patch.object(servers, "LOG_DIR", self.dir): + self.assertFalse(servers.manages([other])) + + class PidForTests(unittest.TestCase): def setUp(self): self._tmp = tempfile.TemporaryDirectory() |
