diff dictation/server_test.py @ 275:78699f810817

Add Qwen3-VL and WebRTC dictation services Add Bazel targets for the CUDA-backed Qwen3-VL server and a local WebRTC faster-whisper dictation service. Co-authored-by: Copilot <[email protected]> Copilot-Session: e3d8cb06-6c95-4ae0-9757-651d3796ab00
author MrJuneJune <me@mrjunejune.com>
date Mon, 17 Aug 2026 10:58:47 -0700
parents
children 49e9e591c9bb
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dictation/server_test.py	Mon Aug 17 10:58:47 2026 -0700
@@ -0,0 +1,60 @@
+from pathlib import Path
+import unittest
+
+from fastapi.testclient import TestClient
+
+from dictation.config import DictationConfig
+from dictation.server import create_app
+from dictation.transcriber import Transcript
+
+
+class FakeTranscriber:
+    async def warmup(self):
+        return None
+
+    async def transcribe(self, samples, *, final):
+        return Transcript("test transcript", "en", 0.99)
+
+
+def test_config() -> DictationConfig:
+    return DictationConfig(
+        host="127.0.0.1",
+        port=8090,
+        model_dir=Path("/tmp/model"),
+        compute_type="int8_float16",
+        max_sessions=1,
+        partial_interval_ms=1200,
+        silence_ms=700,
+        max_utterance_seconds=30,
+        speech_threshold=0.012,
+    )
+
+
+class ServerTest(unittest.TestCase):
+    def test_health_and_assets(self):
+        with TestClient(create_app(test_config(), FakeTranscriber())) as client:
+            health = client.get("/health")
+            self.assertEqual(health.status_code, 200)
+            self.assertEqual(health.json()["status"], "ok")
+            self.assertIn("Zenbu Dictation", client.get("/").text)
+            self.assertIn("RTCPeerConnection", client.get("/dictation.js").text)
+
+    def test_rejects_non_offer_sdp(self):
+        with TestClient(create_app(test_config(), FakeTranscriber())) as client:
+            response = client.post(
+                "/api/webrtc/offer",
+                json={"sdp": "not-sdp", "type": "answer"},
+            )
+            self.assertEqual(response.status_code, 422)
+
+    def test_close_is_idempotent(self):
+        with TestClient(create_app(test_config(), FakeTranscriber())) as client:
+            response = client.post(
+                "/api/webrtc/session/00000000-0000-0000-0000-000000000000/close"
+            )
+            self.assertEqual(response.status_code, 200)
+            self.assertEqual(response.json(), {"closed": True})
+
+
+if __name__ == "__main__":
+    unittest.main()