File size: 2,775 Bytes
edc06cb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
from pathlib import Path

from voicevox_engine.setting.model import CorsPolicyMode
from voicevox_engine.setting.setting_manager import Setting, SettingHandler


def test_setting_handler_load_not_exist_file() -> None:
    """`SettingHandler` に存在しない設定ファイルのパスを渡すとデフォルト値になる。"""
    # Inputs
    setting_path = Path("not_exist.yaml")
    setting_loader = SettingHandler(setting_path)
    # Expects
    true_setting = Setting(cors_policy_mode=CorsPolicyMode.localapps, allow_origin=None)
    # Outputs
    setting = setting_loader.load()
    # Test
    assert true_setting == setting


def test_setting_handler_load_exist_file_1() -> None:
    """`SettingHandler` に設定ファイルのパスを渡すとその値を読み込む。"""
    # Inputs
    setting_path = Path("test/unit/setting/setting-test-load-1.yaml")
    setting_loader = SettingHandler(setting_path)
    # Expects
    true_setting = Setting(cors_policy_mode=CorsPolicyMode.localapps, allow_origin=None)
    # Outputs
    setting = setting_loader.load()
    # Test
    assert true_setting == setting


def test_setting_handler_load_exist_file_2() -> None:
    """`SettingHandler` に設定ファイルのパスを渡すとその値を読み込む。"""
    # Inputs
    setting_path = Path("test/unit/setting/setting-test-load-2.yaml")
    setting_loader = SettingHandler(setting_path)
    # Expects
    true_setting = Setting(cors_policy_mode=CorsPolicyMode.all, allow_origin=None)
    # Outputs
    setting = setting_loader.load()
    # Test
    assert true_setting == setting


def test_setting_handler_load_exist_file_3() -> None:
    """`SettingHandler` に設定ファイルのパスを渡すとその値を読み込む。"""
    # Inputs
    setting_path = Path("test/unit/setting/setting-test-load-3.yaml")
    setting_loader = SettingHandler(setting_path)
    # Expects
    true_policy = CorsPolicyMode.localapps
    true_origin = "192.168.254.255 192.168.255.255"
    true_setting = Setting(cors_policy_mode=true_policy, allow_origin=true_origin)
    # Outputs
    setting = setting_loader.load()
    # Test
    assert true_setting == setting


def test_setting_handler_save(tmp_path: Path) -> None:
    """`SettingHandler.save()` で設定値を保存できる。"""
    # Inputs
    setting_path = tmp_path / "setting-test-dump.yaml"
    setting_loader = SettingHandler(setting_path)
    new_setting = Setting(cors_policy_mode=CorsPolicyMode.localapps)
    # Expects
    true_setting = Setting(cors_policy_mode=CorsPolicyMode.localapps, allow_origin=None)
    # Outputs
    setting_loader.save(new_setting)
    setting = setting_loader.load()  # NOTE: `.load()` の正常動作を前提とする
    # Test
    assert true_setting == setting