|
1 | 1 | """Tests for configuration management."""
|
2 | 2 |
|
3 | 3 | import os
|
| 4 | +import tempfile |
4 | 5 | from pathlib import Path
|
5 | 6 |
|
6 | 7 | import pytest
|
@@ -62,47 +63,51 @@ def test_config_from_env(env_vars: None) -> None:
|
62 | 63 |
|
63 | 64 | def test_config_priority_resolution(temp_config_file: Path, env_vars: None) -> None:
|
64 | 65 | """Test configuration priority resolution."""
|
65 |
| - # CLI args should override everything |
66 |
| - config = Config.load( |
67 |
| - config_path=temp_config_file, |
68 |
| - cli_port=8080, |
69 |
| - cli_host="example.com", |
70 |
| - cli_log_level="WARNING", |
71 |
| - cli_log_format="TEXT", |
72 |
| - cli_provider_urls={"vllm": "https://custom.vllm.server"}, |
73 |
| - certs_dir="./custom-certs", |
74 |
| - ca_cert="custom-ca.crt", |
75 |
| - ca_key="custom-ca.key", |
76 |
| - server_cert="custom-server.crt", |
77 |
| - server_key="custom-server.key", |
78 |
| - ) |
79 |
| - assert config.port == 8080 |
80 |
| - assert config.host == "example.com" |
81 |
| - assert config.log_level == LogLevel.WARNING |
82 |
| - assert config.log_format == LogFormat.TEXT |
83 |
| - assert config.provider_urls["vllm"] == "https://custom.vllm.server" |
84 |
| - assert config.certs_dir == "./custom-certs" |
85 |
| - assert config.ca_cert == "custom-ca.crt" |
86 |
| - assert config.ca_key == "custom-ca.key" |
87 |
| - assert config.server_cert == "custom-server.crt" |
88 |
| - assert config.server_key == "custom-server.key" |
89 |
| - |
90 |
| - # Env vars should override config file |
91 |
| - config = Config.load(config_path=temp_config_file) |
92 |
| - assert config.port == 8989 # from env |
93 |
| - assert config.host == "localhost" # from env |
94 |
| - assert config.log_level == LogLevel.WARNING # from env |
95 |
| - assert config.log_format == LogFormat.TEXT # from env |
96 |
| - assert config.provider_urls == DEFAULT_PROVIDER_URLS # no env override |
97 |
| - |
98 |
| - # Config file should override defaults |
99 |
| - os.environ.clear() # Remove env vars |
100 |
| - config = Config.load(config_path=temp_config_file) |
101 |
| - assert config.port == 8989 # from file |
102 |
| - assert config.host == "localhost" # from file |
103 |
| - assert config.log_level == LogLevel.DEBUG # from file |
104 |
| - assert config.log_format == LogFormat.JSON # from file |
105 |
| - assert config.provider_urls == DEFAULT_PROVIDER_URLS # default values |
| 66 | + with tempfile.TemporaryDirectory() as tmpdirname: |
| 67 | + custom_certs_dir = os.path.join(tmpdirname, "custom-certs") |
| 68 | + os.makedirs(custom_certs_dir) |
| 69 | + |
| 70 | + # CLI args should override everything |
| 71 | + config = Config.load( |
| 72 | + config_path=temp_config_file, |
| 73 | + cli_port=8080, |
| 74 | + cli_host="example.com", |
| 75 | + cli_log_level="WARNING", |
| 76 | + cli_log_format="TEXT", |
| 77 | + cli_provider_urls={"vllm": "https://custom.vllm.server"}, |
| 78 | + certs_dir=custom_certs_dir, |
| 79 | + ca_cert="custom-ca.crt", |
| 80 | + ca_key="custom-ca.key", |
| 81 | + server_cert="custom-server.crt", |
| 82 | + server_key="custom-server.key", |
| 83 | + ) |
| 84 | + assert config.port == 8080 |
| 85 | + assert config.host == "example.com" |
| 86 | + assert config.log_level == LogLevel.WARNING |
| 87 | + assert config.log_format == LogFormat.TEXT |
| 88 | + assert config.provider_urls["vllm"] == "https://custom.vllm.server" |
| 89 | + assert config.certs_dir == custom_certs_dir |
| 90 | + assert config.ca_cert == "custom-ca.crt" |
| 91 | + assert config.ca_key == "custom-ca.key" |
| 92 | + assert config.server_cert == "custom-server.crt" |
| 93 | + assert config.server_key == "custom-server.key" |
| 94 | + |
| 95 | + # Env vars should override config file |
| 96 | + config = Config.load(config_path=temp_config_file) |
| 97 | + assert config.port == 8989 # from env |
| 98 | + assert config.host == "localhost" # from env |
| 99 | + assert config.log_level == LogLevel.WARNING # from env |
| 100 | + assert config.log_format == LogFormat.TEXT # from env |
| 101 | + assert config.provider_urls == DEFAULT_PROVIDER_URLS # no env override |
| 102 | + |
| 103 | + # Config file should override defaults |
| 104 | + os.environ.clear() # Remove env vars |
| 105 | + config = Config.load(config_path=temp_config_file) |
| 106 | + assert config.port == 8989 # from file |
| 107 | + assert config.host == "localhost" # from file |
| 108 | + assert config.log_level == LogLevel.DEBUG # from file |
| 109 | + assert config.log_format == LogFormat.JSON # from file |
| 110 | + assert config.provider_urls == DEFAULT_PROVIDER_URLS # default values |
106 | 111 |
|
107 | 112 |
|
108 | 113 | def test_provider_urls_from_config(tmp_path: Path) -> None:
|
|
0 commit comments