Fix intermittent fail of test_delete_bulk_account

The test asserts calls made in specific order,
but they are made from threads so may be in
different order.

Change-Id: I857ad3b909c3b635927fb1a39682d66d20c6fd59
This commit is contained in:
Alistair Coles 2016-02-01 10:07:55 +00:00
parent 0fe02eb1c0
commit fa9251a1ee

@ -772,7 +772,11 @@ class TestShell(testtools.TestCase):
b'"Errors": [], "Number Deleted": 1, "Response Body": ""}') b'"Errors": [], "Number Deleted": 1, "Response Body": ""}')
swiftclient.shell.main(argv) swiftclient.shell.main(argv)
self.assertEqual( self.assertEqual(
connection.return_value.post_account.mock_calls, [ 3, len(connection.return_value.post_account.mock_calls),
'Expected 3 calls but found\n%r'
% connection.return_value.post_account.mock_calls)
# POSTs for same container are made in parallel so expect any order
for expected in [
mock.call(query_string='bulk-delete', mock.call(query_string='bulk-delete',
data=b'/container/object\n/container/obj%C3%A9ct2\n', data=b'/container/object\n/container/obj%C3%A9ct2\n',
headers={'Content-Type': 'text/plain', headers={'Content-Type': 'text/plain',
@ -782,12 +786,17 @@ class TestShell(testtools.TestCase):
data=b'/container/object3\n', data=b'/container/object3\n',
headers={'Content-Type': 'text/plain', headers={'Content-Type': 'text/plain',
'Accept': 'application/json'}, 'Accept': 'application/json'},
response_dict={}), response_dict={})]:
self.assertIn(expected,
connection.return_value.post_account.mock_calls[:2])
# POSTs for different containers are made sequentially so expect order
self.assertEqual(
mock.call(query_string='bulk-delete', mock.call(query_string='bulk-delete',
data=b'/container2/object\n', data=b'/container2/object\n',
headers={'Content-Type': 'text/plain', headers={'Content-Type': 'text/plain',
'Accept': 'application/json'}, 'Accept': 'application/json'},
response_dict={})]) response_dict={}),
connection.return_value.post_account.mock_calls[2])
self.assertEqual( self.assertEqual(
connection.return_value.delete_container.mock_calls, [ connection.return_value.delete_container.mock_calls, [
mock.call('container', response_dict={}), mock.call('container', response_dict={}),