test_override.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import pytest
  2. from borgmatic.config import override as module
  3. @pytest.mark.parametrize(
  4. 'value,expected_result',
  5. (
  6. ('thing', 'thing'),
  7. ('33', 33),
  8. ('33b', '33b'),
  9. ('true', True),
  10. ('false', False),
  11. ('[foo]', ['foo']),
  12. ('[foo, bar]', ['foo', 'bar']),
  13. ),
  14. )
  15. def test_convert_value_type_coerces_values(value, expected_result):
  16. assert module.convert_value_type(value) == expected_result
  17. def test_apply_overrides_updates_config():
  18. raw_overrides = [
  19. 'section.key=value1',
  20. 'other_section.thing=value2',
  21. 'section.nested.key=value3',
  22. 'new.foo=bar',
  23. ]
  24. config = {
  25. 'section': {'key': 'value', 'other': 'other_value'},
  26. 'other_section': {'thing': 'thing_value'},
  27. }
  28. module.apply_overrides(config, raw_overrides)
  29. assert config == {
  30. 'section': {'key': 'value1', 'other': 'other_value', 'nested': {'key': 'value3'}},
  31. 'other_section': {'thing': 'value2'},
  32. 'new': {'foo': 'bar'},
  33. }