8224fdcc3f
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
from pathlib import Path
|
|
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"
|