Files
whisper-local/tests/test_config.py
T
2026-04-08 10:26:17 +02:00

79 lines
2.5 KiB
Python

from pathlib import Path
from unittest.mock import patch
import os
import tomllib
from whisper_local.config import Config, load_config
class TestConfigDefaults:
def test_default_hotkey(self):
config = Config()
assert config.hotkey == "KEY_F12"
def test_default_whisper_model(self):
config = Config()
assert config.whisper_model == "small"
def test_default_language(self):
config = Config()
assert config.language == "de"
def test_default_compute_type(self):
config = Config()
assert config.compute_type == "int8"
def test_default_sample_rate(self):
config = Config()
assert config.sample_rate == 16000
def test_default_channels(self):
config = Config()
assert config.channels == 1
def test_default_min_duration(self):
config = Config()
assert config.min_duration == 0.5
class TestLoadConfig:
def test_load_from_toml(self, tmp_path):
config_file = tmp_path / "config.toml"
config_file.write_text(
'[hotkey]\nkey = "KEY_F8"\n\n'
'[whisper]\nmodel = "tiny"\nlanguage = "en"\n'
)
config = load_config(config_file)
assert config.hotkey == "KEY_F8"
assert config.whisper_model == "tiny"
assert config.language == "en"
# Defaults bleiben erhalten
assert config.compute_type == "int8"
def test_load_nonexistent_returns_defaults(self, tmp_path):
config = load_config(tmp_path / "nope.toml")
assert config.hotkey == "KEY_F12"
def test_load_empty_file(self, tmp_path):
config_file = tmp_path / "config.toml"
config_file.write_text("")
config = load_config(config_file)
assert config.hotkey == "KEY_F12"
class TestConfigPath:
@patch.dict(os.environ, {"APPDATA": "C:\\Users\\test\\AppData\\Roaming"})
@patch("whisper_local.config.sys")
def test_windows_config_path(self, mock_sys):
mock_sys.platform = "win32"
from whisper_local.config import _default_config_path
result = _default_config_path()
assert result == Path("C:\\Users\\test\\AppData\\Roaming") / "whisper-local" / "config.toml"
@patch("whisper_local.config.sys")
def test_linux_config_path(self, mock_sys):
mock_sys.platform = "linux"
from whisper_local.config import _default_config_path
result = _default_config_path()
assert result == Path.home() / ".config" / "whisper-local" / "config.toml"