From 57ac316b0324a50f2313a125e8ae6c582953a1bd Mon Sep 17 00:00:00 2001 From: Tim Burke Date: Wed, 29 Jun 2016 13:21:31 -0700 Subject: [PATCH] Fix intermittent SLO unit test failures Now that we have concurrent deletes, the order is not guaranteed. Change-Id: Ib833306a07ee0755a80501d5294eaa87b2347dc0 --- test/unit/common/middleware/test_slo.py | 65 ++++++++++++------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/test/unit/common/middleware/test_slo.py b/test/unit/common/middleware/test_slo.py index 83a34c48f5..3898c9db6b 100644 --- a/test/unit/common/middleware/test_slo.py +++ b/test/unit/common/middleware/test_slo.py @@ -840,15 +840,15 @@ class TestSloDeleteManifest(SloTestCase): status, headers, body = self.call_slo(req) resp_data = json.loads(body) self.assertEqual( - self.app.calls, - [('GET', - '/v1/AUTH_test/deltest/man?multipart-manifest=get'), - ('DELETE', - '/v1/AUTH_test/deltest/gone?multipart-manifest=delete'), - ('DELETE', - '/v1/AUTH_test/deltest/b_2?multipart-manifest=delete'), - ('DELETE', - '/v1/AUTH_test/deltest/man?multipart-manifest=delete')]) + set(self.app.calls), + set([('GET', + '/v1/AUTH_test/deltest/man?multipart-manifest=get'), + ('DELETE', + '/v1/AUTH_test/deltest/gone?multipart-manifest=delete'), + ('DELETE', + '/v1/AUTH_test/deltest/b_2?multipart-manifest=delete'), + ('DELETE', + '/v1/AUTH_test/deltest/man?multipart-manifest=delete')])) self.assertEqual(resp_data['Response Status'], '200 OK') self.assertEqual(resp_data['Number Deleted'], 2) self.assertEqual(resp_data['Number Not Found'], 1) @@ -858,14 +858,13 @@ class TestSloDeleteManifest(SloTestCase): '/v1/AUTH_test/deltest/man-all-there?multipart-manifest=delete', environ={'REQUEST_METHOD': 'DELETE'}) self.call_slo(req) - self.assertEqual( - self.app.calls, - [('GET', - '/v1/AUTH_test/deltest/man-all-there?multipart-manifest=get'), - ('DELETE', '/v1/AUTH_test/deltest/b_2?multipart-manifest=delete'), - ('DELETE', '/v1/AUTH_test/deltest/c_3?multipart-manifest=delete'), - ('DELETE', ('/v1/AUTH_test/deltest/' + - 'man-all-there?multipart-manifest=delete'))]) + self.assertEqual(set(self.app.calls), set([ + ('GET', + '/v1/AUTH_test/deltest/man-all-there?multipart-manifest=get'), + ('DELETE', '/v1/AUTH_test/deltest/b_2?multipart-manifest=delete'), + ('DELETE', '/v1/AUTH_test/deltest/c_3?multipart-manifest=delete'), + ('DELETE', ('/v1/AUTH_test/deltest/' + + 'man-all-there?multipart-manifest=delete'))])) def test_handle_multipart_delete_nested(self): req = Request.blank( @@ -1013,14 +1012,15 @@ class TestSloDeleteManifest(SloTestCase): status, headers, body = self.call_slo(req) resp_data = json.loads(body) self.assertEqual( - self.app.calls, - [('GET', '/v1/AUTH_test/deltest/' + - 'manifest-with-unauth-segment?multipart-manifest=get'), - ('DELETE', '/v1/AUTH_test/deltest/a_1?multipart-manifest=delete'), - ('DELETE', '/v1/AUTH_test/deltest-unauth/' + - 'q_17?multipart-manifest=delete'), - ('DELETE', '/v1/AUTH_test/deltest/' + - 'manifest-with-unauth-segment?multipart-manifest=delete')]) + set(self.app.calls), + set([('GET', '/v1/AUTH_test/deltest/' + + 'manifest-with-unauth-segment?multipart-manifest=get'), + ('DELETE', + '/v1/AUTH_test/deltest/a_1?multipart-manifest=delete'), + ('DELETE', '/v1/AUTH_test/deltest-unauth/' + + 'q_17?multipart-manifest=delete'), + ('DELETE', '/v1/AUTH_test/deltest/' + + 'manifest-with-unauth-segment?multipart-manifest=delete')])) self.assertEqual(resp_data['Response Status'], '400 Bad Request') self.assertEqual(resp_data['Response Body'], '') self.assertEqual(resp_data['Number Deleted'], 2) @@ -1039,14 +1039,13 @@ class TestSloDeleteManifest(SloTestCase): resp_data = json.loads(body) self.assertEqual(resp_data["Number Deleted"], 3) - self.assertEqual( - self.app.calls, - [('GET', - '/v1/AUTH_test/deltest/man-all-there?multipart-manifest=get'), - ('DELETE', '/v1/AUTH_test/deltest/b_2?multipart-manifest=delete'), - ('DELETE', '/v1/AUTH_test/deltest/c_3?multipart-manifest=delete'), - ('DELETE', ('/v1/AUTH_test/deltest/' + - 'man-all-there?multipart-manifest=delete'))]) + self.assertEqual(set(self.app.calls), set([ + ('GET', + '/v1/AUTH_test/deltest/man-all-there?multipart-manifest=get'), + ('DELETE', '/v1/AUTH_test/deltest/b_2?multipart-manifest=delete'), + ('DELETE', '/v1/AUTH_test/deltest/c_3?multipart-manifest=delete'), + ('DELETE', ('/v1/AUTH_test/deltest/' + + 'man-all-there?multipart-manifest=delete'))])) class TestSloHeadManifest(SloTestCase):