test_validate_config.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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'generate-borgmatic-config --destination {config_path}'.split(' '))
  9. exit_code = subprocess.call(f'validate-borgmatic-config --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'generate-borgmatic-config --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'validate-borgmatic-config --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'generate-borgmatic-config --destination {config_path}'.split(' '))
  25. output = subprocess.check_output(
  26. f'validate-borgmatic-config --config {config_path} --show'.split(' ')
  27. ).decode(sys.stdout.encoding)
  28. assert 'location:' in output
  29. assert 'repositories:' in output