diff options
-rw-r--r-- | google_compute_engine/ip_forwarding/ip_forwarding_utils.py | 2 | ||||
-rw-r--r-- | google_compute_engine/ip_forwarding/tests/ip_forwarding_utils_test.py | 25 |
2 files changed, 18 insertions, 9 deletions
diff --git a/google_compute_engine/ip_forwarding/ip_forwarding_utils.py b/google_compute_engine/ip_forwarding/ip_forwarding_utils.py index 1045a4b..c7f6cdf 100644 --- a/google_compute_engine/ip_forwarding/ip_forwarding_utils.py +++ b/google_compute_engine/ip_forwarding/ip_forwarding_utils.py @@ -77,7 +77,7 @@ class IpForwardingUtils(object): message = 'Non-zero exit status running %s. %s.' self.logger.warning(message, command, stderr.strip()) else: - return stdout + return stdout.decode('utf-8', 'replace') return '' def ParseForwardedIps(self, forwarded_ips): diff --git a/google_compute_engine/ip_forwarding/tests/ip_forwarding_utils_test.py b/google_compute_engine/ip_forwarding/tests/ip_forwarding_utils_test.py index a6e37a8..18774a6 100644 --- a/google_compute_engine/ip_forwarding/tests/ip_forwarding_utils_test.py +++ b/google_compute_engine/ip_forwarding/tests/ip_forwarding_utils_test.py @@ -21,12 +21,25 @@ from google_compute_engine.test_compat import mock from google_compute_engine.test_compat import unittest +def _CreateMockProcess(returncode, stdout, stderr): + mock_process = mock.Mock() + mock_process.returncode = returncode + mock_process.communicate.return_value = (stdout, stderr) + return mock_process + + class IpForwardingUtilsTest(unittest.TestCase): def setUp(self): self.mock_logger = mock.Mock() self.options = {'hello': 'world'} - self.mock_utils = ip_forwarding_utils.IpForwardingUtils(self.mock_logger) + with mock.patch( + 'google_compute_engine.ip_forwarding.ip_forwarding_utils' + '.subprocess') as mock_subprocess: + mock_subprocess.Popen.return_value = _CreateMockProcess( + 0, b'out', b'') + self.mock_utils = ip_forwarding_utils.IpForwardingUtils( + self.mock_logger) self.mock_utils.proto_id = 'proto' def testCreateRouteOptions(self): @@ -59,9 +72,7 @@ class IpForwardingUtilsTest(unittest.TestCase): @mock.patch('google_compute_engine.ip_forwarding.ip_forwarding_utils.subprocess') def testRunIpRoute(self, mock_subprocess): - mock_process = mock.Mock() - mock_process.returncode = 0 - mock_process.communicate.return_value = ('out', '') + mock_process = _CreateMockProcess(0, b'out', b'') mock_subprocess.Popen.return_value = mock_process args = ['foo', 'bar'] options = {'one': 'two'} @@ -76,16 +87,14 @@ class IpForwardingUtilsTest(unittest.TestCase): @mock.patch('google_compute_engine.ip_forwarding.ip_forwarding_utils.subprocess') def testRunIpRouteReturnCode(self, mock_subprocess): - mock_process = mock.Mock() - mock_process.returncode = 1 - mock_process.communicate.return_value = ('out', 'error\n') + mock_process = _CreateMockProcess(1, b'out', b'error\n') mock_subprocess.Popen.return_value = mock_process self.assertEqual( self.mock_utils._RunIpRoute(args=['foo', 'bar'], options=self.options), '') command = ['ip', 'route', 'foo', 'bar', 'hello', 'world'] - self.mock_logger.warning.assert_called_once_with(mock.ANY, command, 'error') + self.mock_logger.warning.assert_called_once_with(mock.ANY, command, b'error') @mock.patch('google_compute_engine.ip_forwarding.ip_forwarding_utils.subprocess') def testRunIpRouteException(self, mock_subprocess): |