def exec_mock(main, args):
"""Call a main function with sys.args mocked, and capture
stdout/stderr
:param main: main function to call
:type main: function
:param args: sys.args to mock, excluding the initial 'dcos'
:type args: [str]
:returns: (returncode, stdout, stderr)
:rtype: (int, bytes, bytes)
"""
print('MOCK ARGS: {}'.format(' '.join(args)))
with mock_args(args) as (stdout, stderr):
returncode = main(args)
stdout_val = six.b(stdout.getvalue())
stderr_val = six.b(stderr.getvalue())
print('STDOUT: {}'.format(stdout_val))
print('STDERR: {}'.format(stderr_val))
return (returncode, stdout_val, stderr_val)
评论列表
文章目录