feat: add get_server_config function with validation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@ import tempfile
|
||||
import pytest
|
||||
from pathlib import Path
|
||||
|
||||
from zzpyjenkins.config import load_config, ConfigError
|
||||
from zzpyjenkins.config import load_config, ConfigError, get_server_config
|
||||
|
||||
|
||||
def test_load_config_file_not_found():
|
||||
@@ -27,3 +27,44 @@ def test_load_config_invalid_toml():
|
||||
assert "Invalid TOML syntax" in str(exc_info.value)
|
||||
finally:
|
||||
temp_path.unlink()
|
||||
|
||||
|
||||
def test_get_server_config_success():
|
||||
"""Test getting a valid server config."""
|
||||
config = {
|
||||
"work": {
|
||||
"url": "https://jenkins.example.com",
|
||||
"username": "user",
|
||||
"password": "pass"
|
||||
}
|
||||
}
|
||||
result = get_server_config(config, "work")
|
||||
assert result == ("https://jenkins.example.com", "user", "pass")
|
||||
|
||||
|
||||
def test_get_server_config_not_found():
|
||||
"""Test error when server name doesn't exist."""
|
||||
config = {
|
||||
"work": {
|
||||
"url": "https://jenkins.example.com",
|
||||
"username": "user",
|
||||
"password": "pass"
|
||||
}
|
||||
}
|
||||
with pytest.raises(ConfigError) as exc_info:
|
||||
get_server_config(config, "home")
|
||||
assert "Server 'home' not found" in str(exc_info.value)
|
||||
assert "work" in str(exc_info.value)
|
||||
|
||||
|
||||
def test_get_server_config_missing_field():
|
||||
"""Test error when required field is missing."""
|
||||
config = {
|
||||
"incomplete": {
|
||||
"url": "https://jenkins.example.com",
|
||||
"username": "user"
|
||||
}
|
||||
}
|
||||
with pytest.raises(ConfigError) as exc_info:
|
||||
get_server_config(config, "incomplete")
|
||||
assert "password" in str(exc_info.value)
|
||||
|
||||
Reference in New Issue
Block a user