view 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
line wrap: on
line source

import os
from pathlib import Path
import unittest
from unittest.mock import patch

from dictation.config import DictationConfig


class DictationConfigTest(unittest.TestCase):
    def test_defaults_are_local_and_bounded(self):
        with patch.dict(os.environ, {}, clear=True):
            config = DictationConfig.from_environment()
        self.assertEqual(config.host, "127.0.0.1")
        self.assertEqual(config.port, 8090)
        self.assertEqual(config.max_sessions, 1)
        self.assertIn(config.device, {"cpu", "cuda"})
        self.assertEqual(
            config.compute_type,
            "int8" if config.device == "cpu" else "int8_float16",
        )
        self.assertEqual(config.partial_interval_ms, 500)
        self.assertEqual(config.silence_ms, 400)
        self.assertTrue(str(config.model_dir).endswith("faster-whisper-small"))

    def test_rejects_invalid_session_limit(self):
        with patch.dict(
            os.environ,
            {"DICTATION_MAX_SESSIONS": "0"},
            clear=True,
        ):
            with self.assertRaisesRegex(ValueError, "between 1 and 8"):
                DictationConfig.from_environment()

    def test_accepts_model_override(self):
        with patch.dict(
            os.environ,
            {"DICTATION_MODEL_DIR": "/tmp/dictation-model"},
            clear=True,
        ):
            config = DictationConfig.from_environment()
        self.assertEqual(config.model_dir, Path("/tmp/dictation-model"))

    def test_cpu_defaults_to_int8(self):
        with patch.dict(
            os.environ,
            {"DICTATION_DEVICE": "cpu"},
            clear=True,
        ):
            config = DictationConfig.from_environment()
        self.assertEqual(config.device, "cpu")
        self.assertEqual(config.compute_type, "int8")


if __name__ == "__main__":
    unittest.main()