add config tests

This commit is contained in:
Robert Kaussow 2022-03-06 20:23:54 +01:00
parent 2faf0d2989
commit a798b8b4e1
Signed by: xoxys
GPG Key ID: 4E692A2EAECC03C0
6 changed files with 89 additions and 6 deletions

View File

@ -34,7 +34,7 @@ exclude_tags: []
pve:
server:
user:
password
password:
auth_timeout: 5
verify_ssl: true

View File

@ -0,0 +1,24 @@
---
logging:
level: warning
format: console
metrics:
enabled: true
address: "127.0.0.1"
port: 8000
output_file: dummy
loop_delay: 300
service: true
exclude_state: []
exclude_vmid: []
exclude_tags: []
pve:
server: proxmox.example.com
user: root
password: secure
auth_timeout: 5
verify_ssl: true

View File

@ -1,4 +0,0 @@
---
exclude_vmid:
- 100
- "101"

View File

@ -109,7 +109,7 @@ def builtins():
@pytest.fixture
def defaults():
def required():
return {
"exclude_state": [],
"exclude_tags": [],
@ -136,6 +136,34 @@ def defaults():
}
@pytest.fixture
def defaults():
return {
"exclude_state": [],
"exclude_tags": [],
"exclude_vmid": [],
"logging": {
"format": "console",
"level": "WARNING"
},
"loop_delay": 300,
"metrics": {
"address": "127.0.0.1",
"enabled": True,
"port": 8000
},
"output_file": "dummy",
"pve": {
"auth_timeout": 5,
"password": "",
"server": "",
"user": "",
"verify_ssl": True
},
"service": True,
}
@pytest.fixture
def qemus():
return [

View File

@ -0,0 +1,35 @@
"""Test Config class."""
import pytest
import ruamel.yaml
import prometheuspvesd.exception
from prometheuspvesd.config import Config
pytest_plugins = [
"prometheuspvesd.test.fixtures.fixtures",
]
def test_yaml_config(mocker, defaults):
mocker.patch(
"prometheuspvesd.config.default_config_file", "./prometheuspvesd/test/data/config.yml"
)
config = Config()
defaults["pve"]["user"] = "root"
defaults["pve"]["password"] = "secure"
defaults["pve"]["server"] = "proxmox.example.com"
assert config.config == defaults
def test_yaml_config_error(mocker, capsys):
mocker.patch(
"prometheuspvesd.config.default_config_file", "./prometheuspvesd/test/data/config.yml"
)
mocker.patch.object(ruamel.yaml.YAML, "load", side_effect=ruamel.yaml.composer.ComposerError)
with pytest.raises(prometheuspvesd.exception.ConfigError) as e:
Config()
assert "Unable to read config file ./prometheuspvesd/test/data/config.yml" in str(e.value)