diff options
author | Tim Burke <tim.burke@gmail.com> | 2019-11-15 22:08:51 +0000 |
---|---|---|
committer | Tim Burke <tim.burke@gmail.com> | 2019-11-15 22:08:51 +0000 |
commit | e83cd32e2af26ecb9ac9520ac2958f186ba1888c (patch) | |
tree | e448b207603fce17b205a7bf384f1c58bd9df1be /test | |
parent | 709ab385c6eb3d3c7b313bc48c959e9ace606ae5 (diff) | |
download | python-swiftclient-e83cd32e2af26ecb9ac9520ac2958f186ba1888c.tar.gz |
Add test for bulk-delete-attempt-counter fix
Change-Id: Ifdeefeb4a5a3fc6895bd6cda695684de02f8c602
Related-Change: If4af9141fe4f3436a4e9e0e2dfc24c6ec7292996
Related-Bug: #1852808
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/test_shell.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/test/unit/test_shell.py b/test/unit/test_shell.py index c972281..1fa0db4 100644 --- a/test/unit/test_shell.py +++ b/test/unit/test_shell.py @@ -1420,12 +1420,32 @@ class TestShell(unittest.TestCase): b'{"Number Not Found": 0, "Response Status": "200 OK", ' b'"Errors": [], "Number Deleted": 1, "Response Body": ""}') connection.return_value.attempts = 0 - swiftclient.shell.main(argv) + with CaptureOutput() as out: + swiftclient.shell.main(argv) + connection.return_value.post_account.assert_called_with( + query_string='bulk-delete', data=b'/container/object\n', + headers={'Content-Type': 'text/plain', + 'Accept': 'application/json'}, + response_dict={}) + self.assertEqual('object\n', out.out) + + @mock.patch.object(swiftclient.service.SwiftService, + '_bulk_delete_page_size', lambda *a: 10) + @mock.patch('swiftclient.service.Connection') + def test_delete_bulk_object_with_retry(self, connection): + argv = ["", "delete", "container", "object"] + connection.return_value.post_account.return_value = {}, ( + b'{"Number Not Found": 0, "Response Status": "200 OK", ' + b'"Errors": [], "Number Deleted": 1, "Response Body": ""}') + connection.return_value.attempts = 3 + with CaptureOutput() as out: + swiftclient.shell.main(argv) connection.return_value.post_account.assert_called_with( query_string='bulk-delete', data=b'/container/object\n', headers={'Content-Type': 'text/plain', 'Accept': 'application/json'}, response_dict={}) + self.assertEqual('object [after 3 attempts]\n', out.out) def test_delete_verbose_output(self): del_obj_res = {'success': True, 'response_dict': {}, 'attempts': 2, |