annotate dictation/config_test.py @ 282:6bd4a3990696 default tip

Add cross-platform canvas orchestration and typed composer Enable native ARM dependencies, macOS Copilot orchestration, portable service supervision, CPU dictation, and a shared N-key speak-or-type composer. Co-authored-by: Copilot <[email protected]> Copilot-Session: f68442b1-fa8f-46a0-9689-81710613bbd4
author MrJuneJune <me@mrjunejune.com>
date Thu, 20 Aug 2026 20:45:25 -0700
parents 49e9e591c9bb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
275
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1 import os
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2 from pathlib import Path
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
3 import unittest
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
4 from unittest.mock import patch
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
5
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
6 from dictation.config import DictationConfig
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
7
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
8
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
9 class DictationConfigTest(unittest.TestCase):
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
10 def test_defaults_are_local_and_bounded(self):
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
11 with patch.dict(os.environ, {}, clear=True):
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
12 config = DictationConfig.from_environment()
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
13 self.assertEqual(config.host, "127.0.0.1")
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
14 self.assertEqual(config.port, 8090)
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
15 self.assertEqual(config.max_sessions, 1)
282
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
16 self.assertIn(config.device, {"cpu", "cuda"})
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
17 self.assertEqual(
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
18 config.compute_type,
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
19 "int8" if config.device == "cpu" else "int8_float16",
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
20 )
280
49e9e591c9bb Add persistent dictation, prewarmed WebRTC speech input, Copilot SDK routing, animated conversation lifecycle controls, parking, and architecture coverage.
MrJuneJune <me@mrjunejune.com>
parents: 275
diff changeset
21 self.assertEqual(config.partial_interval_ms, 500)
49e9e591c9bb Add persistent dictation, prewarmed WebRTC speech input, Copilot SDK routing, animated conversation lifecycle controls, parking, and architecture coverage.
MrJuneJune <me@mrjunejune.com>
parents: 275
diff changeset
22 self.assertEqual(config.silence_ms, 400)
275
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
23 self.assertTrue(str(config.model_dir).endswith("faster-whisper-small"))
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
24
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
25 def test_rejects_invalid_session_limit(self):
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
26 with patch.dict(
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
27 os.environ,
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
28 {"DICTATION_MAX_SESSIONS": "0"},
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
29 clear=True,
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
30 ):
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
31 with self.assertRaisesRegex(ValueError, "between 1 and 8"):
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
32 DictationConfig.from_environment()
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
33
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
34 def test_accepts_model_override(self):
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
35 with patch.dict(
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
36 os.environ,
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
37 {"DICTATION_MODEL_DIR": "/tmp/dictation-model"},
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
38 clear=True,
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
39 ):
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
40 config = DictationConfig.from_environment()
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
41 self.assertEqual(config.model_dir, Path("/tmp/dictation-model"))
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
42
282
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
43 def test_cpu_defaults_to_int8(self):
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
44 with patch.dict(
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
45 os.environ,
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
46 {"DICTATION_DEVICE": "cpu"},
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
47 clear=True,
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
48 ):
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
49 config = DictationConfig.from_environment()
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
50 self.assertEqual(config.device, "cpu")
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
51 self.assertEqual(config.compute_type, "int8")
6bd4a3990696 Add cross-platform canvas orchestration and typed composer
MrJuneJune <me@mrjunejune.com>
parents: 280
diff changeset
52
275
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
53
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
54 if __name__ == "__main__":
78699f810817 Add Qwen3-VL and WebRTC dictation services
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
55 unittest.main()