diff --git a/tests/test_config_manager.py b/tests/test_config_manager.py index dad2f10..142c9c3 100644 --- a/tests/test_config_manager.py +++ b/tests/test_config_manager.py @@ -604,13 +604,23 @@ class TestTypedAccessors(unittest.TestCase): self.assertEqual(advanced["whispercpp_n_threads"], 0) def test_whispercpp_advanced_persistence(self): - self.config_manager.set("advanced", "whispercpp_temperature", 0.5) - self.config_manager.set("advanced", "whispercpp_no_timestamps", False) - self.config_manager.set("advanced", "whispercpp_initial_prompt", "Meeting notes") - self.config_manager.save_config() + # This class skips ConfigManager.__init__, so unlike TestConfigManager + # nothing has redirected CONFIG_FILE: without the patches below this + # save_config() overwrites the developer's real ~/.config/vocalinux/ + # config.json with the synthetic fixture from setUp. + with tempfile.TemporaryDirectory() as temp_dir: + temp_file = os.path.join(temp_dir, "config.json") + with ( + patch("vocalinux.ui.config_manager.CONFIG_DIR", temp_dir), + patch("vocalinux.ui.config_manager.CONFIG_FILE", temp_file), + ): + self.config_manager.set("advanced", "whispercpp_temperature", 0.5) + self.config_manager.set("advanced", "whispercpp_no_timestamps", False) + self.config_manager.set("advanced", "whispercpp_initial_prompt", "Meeting notes") + self.config_manager.save_config() - new_manager = ConfigManager() - advanced = new_manager.get_settings().get("advanced", {}) - self.assertEqual(advanced["whispercpp_temperature"], 0.5) - self.assertFalse(advanced["whispercpp_no_timestamps"]) - self.assertEqual(advanced["whispercpp_initial_prompt"], "Meeting notes") + new_manager = ConfigManager() + advanced = new_manager.get_settings().get("advanced", {}) + self.assertEqual(advanced["whispercpp_temperature"], 0.5) + self.assertFalse(advanced["whispercpp_no_timestamps"]) + self.assertEqual(advanced["whispercpp_initial_prompt"], "Meeting notes")