Mercurial
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 |
| 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() |