From 900e8a5256ebae67fc1aed9b8acbf4b5062ad1bd Mon Sep 17 00:00:00 2001 From: Adam Harwell Date: Tue, 24 Nov 2015 14:21:06 -0600 Subject: [PATCH] Fix api_server agent test that broke due to a dep change The test was slightly incorrect to begin with, but the issue didn't become apparent until the oslo.log update from 1.13.0 to 2.0.0 for whatever reason. open() raises IOError() not Exception() so it was not being handled properly. Also taking this opportunity to standardize the use of builtins to match our other tests. Change-Id: Idab637b09e8a437333f810f82f45b3e9c027dfdd --- .../backend/agent/api_server/test_server.py | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py b/octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py index ab954fd39e..75625d95e9 100644 --- a/octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py +++ b/octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py @@ -30,9 +30,10 @@ import octavia.tests.unit.base as base RANDOM_ERROR = 'random error' OK = dict(message='OK') -BUILTINS = '__builtin__' -if six.PY3: - BUILTINS = 'builtins' +if six.PY2: + import __builtin__ as builtins +else: + import builtins class ServerTestCase(base.TestCase): @@ -53,7 +54,7 @@ class ServerTestCase(base.TestCase): m = mock.mock_open() # happy case upstart file exists - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.put('/' + api_server.VERSION + '/listeners/123/haproxy', data='test') self.assertEqual(202, rv.status_code) @@ -69,9 +70,9 @@ class ServerTestCase(base.TestCase): '/var/lib/octavia/123/haproxy.cfg') # exception writing - m = mock.Mock() - m.side_effect = Exception() # open crashes - with mock.patch('%s.open' % BUILTINS, m, create=True): + m = mock.mock_open() + m.side_effect = IOError() # open crashes + with mock.patch.object(builtins, 'open', m): rv = self.app.put('/' + api_server.VERSION + '/listeners/123/haproxy', data='test') self.assertEqual(500, rv.status_code) @@ -81,7 +82,7 @@ class ServerTestCase(base.TestCase): m = mock.mock_open() # happy case upstart file exists - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.put('/' + api_server.VERSION + '/listeners/123/haproxy', data='test') self.assertEqual(202, rv.status_code) @@ -96,7 +97,7 @@ class ServerTestCase(base.TestCase): mock_exists.return_value = True mock_subprocess.side_effect = [subprocess.CalledProcessError( 7, 'test', RANDOM_ERROR)] - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.put('/' + api_server.VERSION + '/listeners/123/haproxy', data='test') self.assertEqual(400, rv.status_code) @@ -246,7 +247,7 @@ class ServerTestCase(base.TestCase): mock_exists.side_effect = [True] m = mock.mock_open(read_data=CONTENT) - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.get('/' + api_server.VERSION + '/listeners/123/haproxy') self.assertEqual(200, rv.status_code) @@ -399,7 +400,7 @@ class ServerTestCase(base.TestCase): m = mock.mock_open(read_data=CONTENT) mock_exists.return_value = True mock_exists.side_effect = None - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.get('/' + api_server.VERSION + '/listeners/123/certificates/test.pem') self.assertEqual(200, rv.status_code) @@ -421,7 +422,7 @@ class ServerTestCase(base.TestCase): mock_exists.side_effect = [True, True, True] m = mock.mock_open() - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.put('/' + api_server.VERSION + '/listeners/123/certificates/test.pem', data='TestTest') @@ -434,7 +435,7 @@ class ServerTestCase(base.TestCase): mock_exists.side_effect = [True, False] m = mock.mock_open() - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.put('/' + api_server.VERSION + '/listeners/123/certificates/test.pem', data='TestTest') @@ -448,7 +449,7 @@ class ServerTestCase(base.TestCase): certificate_update.BUFFER = 5 # test the while loop m = mock.mock_open() - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.put('/' + api_server.VERSION + '/certificate', data='TestTest') @@ -491,7 +492,7 @@ class ServerTestCase(base.TestCase): mock_ifaddress.side_effect = [[netifaces.AF_LINK], {netifaces.AF_LINK: [{'addr': '123'}]}] m = mock.mock_open() - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.post('/' + api_server.VERSION + "/plug/network", content_type='application/json', data=json.dumps(port_info)) @@ -514,7 +515,7 @@ class ServerTestCase(base.TestCase): 7, 'test', RANDOM_ERROR), subprocess.CalledProcessError( 7, 'test', RANDOM_ERROR)] m = mock.mock_open() - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.post('/' + api_server.VERSION + "/plug/network", content_type='application/json', data=json.dumps(port_info)) @@ -569,7 +570,7 @@ class ServerTestCase(base.TestCase): mock_ifaddress.side_effect = [[netifaces.AF_LINK], {netifaces.AF_LINK: [{'addr': '123'}]}] m = mock.mock_open() - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.post('/' + api_server.VERSION + "/plug/vip/203.0.113.2", content_type='application/json', @@ -598,7 +599,7 @@ class ServerTestCase(base.TestCase): 7, 'test', RANDOM_ERROR), subprocess.CalledProcessError( 7, 'test', RANDOM_ERROR)] m = mock.mock_open() - with mock.patch('%s.open' % BUILTINS, m, create=True): + with mock.patch.object(builtins, 'open', m): rv = self.app.post('/' + api_server.VERSION + "/plug/vip/203.0.113.2", content_type='application/json',