42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
import os
|
|
import subprocess
|
|
import sys
|
|
import tempfile
|
|
|
|
|
|
def test_validate_config_command_with_valid_configuration_succeeds():
|
|
with tempfile.TemporaryDirectory() as temporary_directory:
|
|
config_path = os.path.join(temporary_directory, 'test.yaml')
|
|
|
|
subprocess.check_call(f'generate-borgmatic-config --destination {config_path}'.split(' '))
|
|
exit_code = subprocess.call(f'validate-borgmatic-config --config {config_path}'.split(' '))
|
|
|
|
assert exit_code == 0
|
|
|
|
|
|
def test_validate_config_command_with_invalid_configuration_fails():
|
|
with tempfile.TemporaryDirectory() as temporary_directory:
|
|
config_path = os.path.join(temporary_directory, 'test.yaml')
|
|
|
|
subprocess.check_call(f'generate-borgmatic-config --destination {config_path}'.split(' '))
|
|
config = open(config_path).read().replace('keep_daily: 7', 'keep_daily: "7"')
|
|
config_file = open(config_path, 'w')
|
|
config_file.write(config)
|
|
config_file.close()
|
|
|
|
exit_code = subprocess.call(f'validate-borgmatic-config --config {config_path}'.split(' '))
|
|
|
|
assert exit_code == 1
|
|
|
|
|
|
def test_validate_config_command_with_show_flag_displays_configuration():
|
|
with tempfile.TemporaryDirectory() as temporary_directory:
|
|
config_path = os.path.join(temporary_directory, 'test.yaml')
|
|
|
|
subprocess.check_call(f'generate-borgmatic-config --destination {config_path}'.split(' '))
|
|
output = subprocess.check_output(
|
|
f'validate-borgmatic-config --config {config_path} --show'.split(' ')
|
|
).decode(sys.stdout.encoding)
|
|
|
|
assert 'location:' in output
|
|
assert 'repositories:' in output
|