summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Illfelder <illfelder@users.noreply.github.com>2016-08-26 09:02:24 -0700
committerGitHub <noreply@github.com>2016-08-26 09:02:24 -0700
commit0420c35149505d2b1fa7106d7697dcd63ed6479e (patch)
treee228dae305b7c77a031626ff9716d2f70258f9b2
parent49bd63c53f00caec8128acd9976e8aed85c76fe5 (diff)
downloadgoogle-compute-image-packages-0420c35149505d2b1fa7106d7697dcd63ed6479e.tar.gz
Fix IP forwarding utils Python 3 compatibility. (#331)
-rw-r--r--google_compute_engine/ip_forwarding/ip_forwarding_utils.py2
-rw-r--r--google_compute_engine/ip_forwarding/tests/ip_forwarding_utils_test.py25
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):