test_load.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import sys
  2. from flexmock import flexmock
  3. from borgmatic.config import load as module
  4. def test_load_configuration_parses_contents():
  5. builtins = flexmock(sys.modules['builtins'])
  6. builtins.should_receive('open').with_args('config.yaml').and_return('key: value')
  7. assert module.load_configuration('config.yaml') == {'key': 'value'}
  8. def test_load_configuration_inlines_include():
  9. builtins = flexmock(sys.modules['builtins'])
  10. builtins.should_receive('open').with_args('include.yaml').and_return('value')
  11. builtins.should_receive('open').with_args('config.yaml').and_return(
  12. 'key: !include include.yaml'
  13. )
  14. assert module.load_configuration('config.yaml') == {'key': 'value'}
  15. def test_load_configuration_merges_include():
  16. builtins = flexmock(sys.modules['builtins'])
  17. builtins.should_receive('open').with_args('include.yaml').and_return(
  18. '''
  19. foo: bar
  20. baz: quux
  21. '''
  22. )
  23. builtins.should_receive('open').with_args('config.yaml').and_return(
  24. '''
  25. foo: override
  26. <<: !include include.yaml
  27. '''
  28. )
  29. assert module.load_configuration('config.yaml') == {'foo': 'override', 'baz': 'quux'}