prometheus-pve-sd/prometheuspvesd/test/unit/test_config.py
Robert Kaussow 35bfa8bc6a
feat: add option to authenticate with api token instead of password (#460)
Co-authored-by: Bruno MATEU <pro+github@brunomat.eu>
Co-authored-by: Bruno MATEU <mateubruno@gmail.com>
2023-09-19 09:00:30 +02:00

38 lines
1.1 KiB
Python

"""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"
defaults["pve"]["token_name"] = "pve_sd"
defaults["pve"]["token_value"] = "01234567-89ab-cdef-0123-456789abcdef"
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)