| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- import pkgutil
 
- import borgmatic.actions
 
- import borgmatic.config.load
 
- import borgmatic.config.validate
 
- MAXIMUM_LINE_LENGTH = 80
 
- def test_schema_line_length_stays_under_limit():
 
-     schema_file = open(borgmatic.config.validate.schema_filename())
 
-     for line in schema_file.readlines():
 
-         assert len(line.rstrip('\n')) <= MAXIMUM_LINE_LENGTH
 
- ACTIONS_MODULE_NAMES_TO_OMIT = {
 
-     'arguments',
 
-     'change_passphrase',
 
-     'export_key',
 
-     'import_key',
 
-     'json',
 
-     'pattern',
 
- }
 
- ACTIONS_MODULE_NAMES_TO_ADD = {'key', 'umount'}
 
- def test_schema_actions_correspond_to_supported_actions():
 
-     '''
 
-     Ensure that the allowed actions in the schema's various options don't drift from borgmatic's
 
-     actual supported actions.
 
-     '''
 
-     schema = borgmatic.config.load.load_configuration(borgmatic.config.validate.schema_filename())
 
-     supported_actions = {
 
-         module.name.replace('_', '-')
 
-         for module in pkgutil.iter_modules(borgmatic.actions.__path__)
 
-         if module.name not in ACTIONS_MODULE_NAMES_TO_OMIT
 
-     }.union(ACTIONS_MODULE_NAMES_TO_ADD)
 
-     properties = schema['properties']
 
-     commands_one_of = properties['commands']['items']['oneOf']
 
-     for schema_actions in (
 
-         set(properties['skip_actions']['items']['enum']),
 
-         set(commands_one_of[0]['properties']['when']['items']['enum']),
 
-         set(commands_one_of[1]['properties']['when']['items']['enum']),
 
-     ):
 
-         assert schema_actions == supported_actions
 
 
  |