|  | @@ -1,5 +1,6 @@
 | 
	
		
			
				|  |  |  import logging
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import pytest
 | 
	
		
			
				|  |  |  from flexmock import flexmock
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from borgmatic.borg import info as module
 | 
	
	
		
			
				|  | @@ -14,7 +15,9 @@ def test_display_archives_info_calls_borg_with_parameters():
 | 
	
		
			
				|  |  |          INFO_COMMAND, output_log_level=logging.WARNING
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    module.display_archives_info(repository='repo', storage_config={})
 | 
	
		
			
				|  |  | +    module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo', storage_config={}, info_arguments=flexmock(archive=None, json=False)
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def test_display_archives_info_with_log_info_calls_borg_with_info_parameter():
 | 
	
	
		
			
				|  | @@ -22,7 +25,9 @@ def test_display_archives_info_with_log_info_calls_borg_with_info_parameter():
 | 
	
		
			
				|  |  |          INFO_COMMAND + ('--info',), output_log_level=logging.WARNING
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |      insert_logging_mock(logging.INFO)
 | 
	
		
			
				|  |  | -    module.display_archives_info(repository='repo', storage_config={})
 | 
	
		
			
				|  |  | +    module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo', storage_config={}, info_arguments=flexmock(archive=None, json=False)
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def test_display_archives_info_with_log_info_and_json_suppresses_most_borg_output():
 | 
	
	
		
			
				|  | @@ -31,7 +36,9 @@ def test_display_archives_info_with_log_info_and_json_suppresses_most_borg_outpu
 | 
	
		
			
				|  |  |      ).and_return('[]')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      insert_logging_mock(logging.INFO)
 | 
	
		
			
				|  |  | -    json_output = module.display_archives_info(repository='repo', storage_config={}, json=True)
 | 
	
		
			
				|  |  | +    json_output = module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo', storage_config={}, info_arguments=flexmock(archive=None, json=True)
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      assert json_output == '[]'
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -42,7 +49,9 @@ def test_display_archives_info_with_log_debug_calls_borg_with_debug_parameter():
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |      insert_logging_mock(logging.DEBUG)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    module.display_archives_info(repository='repo', storage_config={})
 | 
	
		
			
				|  |  | +    module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo', storage_config={}, info_arguments=flexmock(archive=None, json=False)
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def test_display_archives_info_with_log_debug_and_json_suppresses_most_borg_output():
 | 
	
	
		
			
				|  | @@ -51,7 +60,9 @@ def test_display_archives_info_with_log_debug_and_json_suppresses_most_borg_outp
 | 
	
		
			
				|  |  |      ).and_return('[]')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      insert_logging_mock(logging.DEBUG)
 | 
	
		
			
				|  |  | -    json_output = module.display_archives_info(repository='repo', storage_config={}, json=True)
 | 
	
		
			
				|  |  | +    json_output = module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo', storage_config={}, info_arguments=flexmock(archive=None, json=True)
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      assert json_output == '[]'
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -61,17 +72,34 @@ def test_display_archives_info_with_json_calls_borg_with_json_parameter():
 | 
	
		
			
				|  |  |          INFO_COMMAND + ('--json',), output_log_level=None
 | 
	
		
			
				|  |  |      ).and_return('[]')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    json_output = module.display_archives_info(repository='repo', storage_config={}, json=True)
 | 
	
		
			
				|  |  | +    json_output = module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo', storage_config={}, info_arguments=flexmock(archive=None, json=True)
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      assert json_output == '[]'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +def test_display_archives_info_with_archive_calls_borg_with_archive_parameter():
 | 
	
		
			
				|  |  | +    flexmock(module).should_receive('execute_command').with_args(
 | 
	
		
			
				|  |  | +        ('borg', 'info', 'repo::archive'), output_log_level=logging.WARNING
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo', storage_config={}, info_arguments=flexmock(archive='archive', json=False)
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  def test_display_archives_info_with_local_path_calls_borg_via_local_path():
 | 
	
		
			
				|  |  |      flexmock(module).should_receive('execute_command').with_args(
 | 
	
		
			
				|  |  |          ('borg1',) + INFO_COMMAND[1:], output_log_level=logging.WARNING
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    module.display_archives_info(repository='repo', storage_config={}, local_path='borg1')
 | 
	
		
			
				|  |  | +    module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo',
 | 
	
		
			
				|  |  | +        storage_config={},
 | 
	
		
			
				|  |  | +        info_arguments=flexmock(archive=None, json=False),
 | 
	
		
			
				|  |  | +        local_path='borg1',
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def test_display_archives_info_with_remote_path_calls_borg_with_remote_path_parameters():
 | 
	
	
		
			
				|  | @@ -79,7 +107,12 @@ def test_display_archives_info_with_remote_path_calls_borg_with_remote_path_para
 | 
	
		
			
				|  |  |          INFO_COMMAND + ('--remote-path', 'borg1'), output_log_level=logging.WARNING
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    module.display_archives_info(repository='repo', storage_config={}, remote_path='borg1')
 | 
	
		
			
				|  |  | +    module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo',
 | 
	
		
			
				|  |  | +        storage_config={},
 | 
	
		
			
				|  |  | +        info_arguments=flexmock(archive=None, json=False),
 | 
	
		
			
				|  |  | +        remote_path='borg1',
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def test_display_archives_info_with_lock_wait_calls_borg_with_lock_wait_parameters():
 | 
	
	
		
			
				|  | @@ -88,4 +121,22 @@ def test_display_archives_info_with_lock_wait_calls_borg_with_lock_wait_paramete
 | 
	
		
			
				|  |  |          INFO_COMMAND + ('--lock-wait', '5'), output_log_level=logging.WARNING
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    module.display_archives_info(repository='repo', storage_config=storage_config)
 | 
	
		
			
				|  |  | +    module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo',
 | 
	
		
			
				|  |  | +        storage_config=storage_config,
 | 
	
		
			
				|  |  | +        info_arguments=flexmock(archive=None, json=False),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +@pytest.mark.parametrize('argument_name', ('prefix', 'glob_archives', 'sort_by', 'first', 'last'))
 | 
	
		
			
				|  |  | +def test_display_archives_info_passes_through_arguments_to_borg(argument_name):
 | 
	
		
			
				|  |  | +    flexmock(module).should_receive('execute_command').with_args(
 | 
	
		
			
				|  |  | +        INFO_COMMAND + ('--' + argument_name.replace('_', '-'), 'value'),
 | 
	
		
			
				|  |  | +        output_log_level=logging.WARNING,
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    module.display_archives_info(
 | 
	
		
			
				|  |  | +        repository='repo',
 | 
	
		
			
				|  |  | +        storage_config={},
 | 
	
		
			
				|  |  | +        info_arguments=flexmock(archive=None, json=False, **{argument_name: 'value'}),
 | 
	
		
			
				|  |  | +    )
 |