from pathlib import Path from tempfile import TemporaryDirectory from unittest import TestCase from voicevox_engine.setting import CorsPolicyMode, Setting, SettingLoader class TestSettingLoader(TestCase): def setUp(self): self.tmp_dir = TemporaryDirectory() self.tmp_dir_path = Path(self.tmp_dir.name) def test_loading_1(self): setting_loader = SettingLoader(Path("not_exist.yaml")) settings = setting_loader.load_setting_file() self.assertEqual( settings.dict(), {"allow_origin": None, "cors_policy_mode": CorsPolicyMode.localapps}, ) def test_loading_2(self): setting_loader = SettingLoader( setting_file_path=Path("test/setting-test-load-1.yaml") ) settings = setting_loader.load_setting_file() self.assertEqual( settings.dict(), {"allow_origin": None, "cors_policy_mode": CorsPolicyMode.localapps}, ) def test_loading_3(self): setting_loader = SettingLoader( setting_file_path=Path("test/setting-test-load-2.yaml") ) settings = setting_loader.load_setting_file() self.assertEqual( settings.dict(), {"allow_origin": None, "cors_policy_mode": "all"}, ) def test_loading_4(self): setting_loader = SettingLoader( setting_file_path=Path("test/setting-test-load-3.yaml") ) settings = setting_loader.load_setting_file() self.assertEqual( settings.dict(), { "allow_origin": "192.168.254.255 192.168.255.255", "cors_policy_mode": CorsPolicyMode.localapps, }, ) def test_dump(self): setting_loader = SettingLoader( setting_file_path=Path(self.tmp_dir_path / "setting-test-dump.yaml") ) settings = Setting(cors_policy_mode=CorsPolicyMode.localapps) setting_loader.dump_setting_file(settings) self.assertTrue(setting_loader.setting_file_path.is_file()) self.assertEqual( setting_loader.load_setting_file().dict(), {"allow_origin": None, "cors_policy_mode": CorsPolicyMode.localapps}, ) def tearDown(self): self.tmp_dir.cleanup()