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"