Mercurial
diff dictation/webrtc_test.py @ 280:49e9e591c9bb
Add persistent dictation, prewarmed WebRTC speech input, Copilot SDK routing, animated conversation lifecycle controls, parking, and architecture coverage.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Tue, 18 Aug 2026 19:14:53 -0700 |
| parents | 78699f810817 |
| children |
line wrap: on
line diff
--- a/dictation/webrtc_test.py Mon Aug 17 22:22:36 2026 -0700 +++ b/dictation/webrtc_test.py Tue Aug 18 19:14:53 2026 -0700 @@ -60,6 +60,16 @@ class WebRtcTest(unittest.IsolatedAsyncioTestCase): async def test_audio_track_returns_transcript_events(self): + loop_errors = [] + loop = asyncio.get_running_loop() + previous_exception_handler = loop.get_exception_handler() + loop.set_exception_handler( + lambda _loop, context: loop_errors.append(context) + ) + self.addCleanup( + loop.set_exception_handler, + previous_exception_handler, + ) service = DictationService(test_config(), FakeTranscriber()) await service.start() client = RTCPeerConnection() @@ -131,11 +141,17 @@ self.assertIn("speech.started", event_types) self.assertIn("transcript.partial", event_types) self.assertIn("transcript.final", event_types) + channel.send("commit") + await asyncio.sleep(0.2) + self.assertNotEqual(client.connectionState, "closed") + self.assertIn(answer["sessionId"], service.sessions) finally: await client.close() await service.close() + await asyncio.sleep(0.6) Path(audio_file.name).unlink(missing_ok=True) self.assertEqual(service.sessions, {}) + self.assertEqual(loop_errors, []) if __name__ == "__main__":