diff options
-rw-r--r-- | tests/21_test_command_wrappers.py | 18 | ||||
-rw-r--r-- | tests/testutils/__init__.py | 4 | ||||
-rw-r--r-- | tests/testutils/popen.py | 18 |
3 files changed, 22 insertions, 18 deletions
diff --git a/tests/21_test_command_wrappers.py b/tests/21_test_command_wrappers.py index 3ad3290c..61aab56b 100644 --- a/tests/21_test_command_wrappers.py +++ b/tests/21_test_command_wrappers.py @@ -2,25 +2,9 @@ """Test L{gbp.command_wrappers.Command}'s tarball unpack""" import unittest -import mock -import functools from gbp.command_wrappers import Command, CommandExecFailed -from . testutils import GbpLogTester - - -def patch_popen(stdout=b'', stderr=b'', returncode=1): - """Decorator to easily set the return value of popen.communicate()""" - def patch_popen_decorator(func): - @functools.wraps(func) - def wrap(self): - with mock.patch('subprocess.Popen') as create_mock: - popen_mock = mock.Mock(**{'returncode': returncode, - 'communicate.return_value': (stdout, stderr)}) - create_mock.return_value = popen_mock - return func(self, create_mock) - return wrap - return patch_popen_decorator +from . testutils import GbpLogTester, patch_popen class TestCommandWrapperFailures(unittest.TestCase, GbpLogTester): diff --git a/tests/testutils/__init__.py b/tests/testutils/__init__.py index 27f9e9cc..febd9e2b 100644 --- a/tests/testutils/__init__.py +++ b/tests/testutils/__init__.py @@ -16,11 +16,13 @@ from gbp.deb.changelog import ChangeLog from . gbplogtester import GbpLogTester from . debiangittestrepo import DebianGitTestRepo from . capture import capture_stdout, capture_stderr +from . popen import patch_popen __all__ = ['GbpLogTester', 'DebianGitTestRepo', 'OsReleaseFile', 'MockedChangeLog', 'get_dch_default_urgency', 'capture_stderr', 'capture_stdout', - 'ls_dir', 'ls_tar', 'ls_zip'] + 'ls_dir', 'ls_tar', 'ls_zip', + 'patch_popen'] class OsReleaseFile(object): diff --git a/tests/testutils/popen.py b/tests/testutils/popen.py new file mode 100644 index 00000000..725e1f77 --- /dev/null +++ b/tests/testutils/popen.py @@ -0,0 +1,18 @@ +# vim: set fileencoding=utf-8 : + +import functools +import mock + + +def patch_popen(stdout=b'', stderr=b'', returncode=1): + """Decorator to easily set the return value of popen.communicate()""" + def patch_popen_decorator(func): + @functools.wraps(func) + def wrap(self): + with mock.patch('subprocess.Popen') as create_mock: + popen_mock = mock.Mock(**{'returncode': returncode, + 'communicate.return_value': (stdout, stderr)}) + create_mock.return_value = popen_mock + return func(self, create_mock) + return wrap + return patch_popen_decorator |