Add missing test coverage.
This commit is contained in:
parent
2ddf38f99c
commit
3e5a19d95a
2 changed files with 30 additions and 0 deletions
|
@ -87,6 +87,35 @@ def test_log_outputs_skips_error_output_in_exception_for_process_with_none_stdou
|
||||||
assert not error.value.output
|
assert not error.value.output
|
||||||
|
|
||||||
|
|
||||||
|
def test_log_outputs_kills_other_processes_when_one_errors():
|
||||||
|
flexmock(module.logger).should_receive('log')
|
||||||
|
flexmock(module).should_receive('exit_code_indicates_error').and_return(True)
|
||||||
|
flexmock(module).should_receive('command_for_process').and_return('grep')
|
||||||
|
|
||||||
|
process = subprocess.Popen(['grep'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
|
other_process = subprocess.Popen(
|
||||||
|
['watch', 'true'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
||||||
|
)
|
||||||
|
flexmock(module).should_receive('output_buffer_for_process').with_args(process, ()).and_return(
|
||||||
|
process.stdout
|
||||||
|
)
|
||||||
|
flexmock(module).should_receive('output_buffer_for_process').with_args(
|
||||||
|
other_process, ()
|
||||||
|
).and_return(other_process.stdout)
|
||||||
|
flexmock(other_process).should_receive('kill').once()
|
||||||
|
|
||||||
|
with pytest.raises(subprocess.CalledProcessError) as error:
|
||||||
|
module.log_outputs(
|
||||||
|
(process, other_process),
|
||||||
|
exclude_stdouts=(),
|
||||||
|
output_log_level=logging.INFO,
|
||||||
|
borg_local_path='borg',
|
||||||
|
)
|
||||||
|
|
||||||
|
assert error.value.returncode == 2
|
||||||
|
assert error.value.output
|
||||||
|
|
||||||
|
|
||||||
def test_log_outputs_truncates_long_error_output():
|
def test_log_outputs_truncates_long_error_output():
|
||||||
flexmock(module).ERROR_OUTPUT_MAX_LINE_COUNT = 0
|
flexmock(module).ERROR_OUTPUT_MAX_LINE_COUNT = 0
|
||||||
flexmock(module.logger).should_receive('log')
|
flexmock(module.logger).should_receive('log')
|
||||||
|
|
|
@ -21,6 +21,7 @@ from borgmatic import execute as module
|
||||||
(flexmock(args=['grep']), 0, 'borg', False),
|
(flexmock(args=['grep']), 0, 'borg', False),
|
||||||
(flexmock(args=['borg']), 0, 'borg', False),
|
(flexmock(args=['borg']), 0, 'borg', False),
|
||||||
(flexmock(args=['borg1']), 0, 'borg1', False),
|
(flexmock(args=['borg1']), 0, 'borg1', False),
|
||||||
|
(flexmock(args=['borg']), None, None, False),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
def test_exit_code_indicates_error_respects_exit_code_and_borg_local_path(
|
def test_exit_code_indicates_error_respects_exit_code_and_borg_local_path(
|
||||||
|
|
Loading…
Reference in a new issue