test_validate_config.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import os
  2. import subprocess
  3. import sys
  4. import tempfile
  5. def test_validate_config_command_with_valid_configuration_succeeds():
  6. with tempfile.TemporaryDirectory() as temporary_directory:
  7. config_path = os.path.join(temporary_directory, 'test.yaml')
  8. subprocess.check_call(f'borgmatic config generate --destination {config_path}'.split(' '))
  9. exit_code = subprocess.call(f'borgmatic config validate --config {config_path}'.split(' '))
  10. assert exit_code == 0
  11. def test_validate_config_command_with_invalid_configuration_fails():
  12. with tempfile.TemporaryDirectory() as temporary_directory:
  13. config_path = os.path.join(temporary_directory, 'test.yaml')
  14. subprocess.check_call(f'borgmatic config generate --destination {config_path}'.split(' '))
  15. config = open(config_path).read().replace('keep_daily: 7', 'keep_daily: "7"')
  16. config_file = open(config_path, 'w')
  17. config_file.write(config)
  18. config_file.close()
  19. exit_code = subprocess.call(f'borgmatic config validate --config {config_path}'.split(' '))
  20. assert exit_code == 1
  21. def test_validate_config_command_with_show_flag_displays_configuration():
  22. with tempfile.TemporaryDirectory() as temporary_directory:
  23. config_path = os.path.join(temporary_directory, 'test.yaml')
  24. subprocess.check_call(f'borgmatic config generate --destination {config_path}'.split(' '))
  25. output = subprocess.check_output(
  26. f'borgmatic config validate --config {config_path} --show'.split(' ')
  27. ).decode(sys.stdout.encoding)
  28. assert 'repositories:' in output