def test_mark_for_deletion_two_updates_with_yield(self): ts = '1558463777.42739' with FakeInternalClient([ swob.Response(json.dumps([ {'name': 'obj1'}, {'name': 'obj2'}, {'name': 'obj3'}, {'name': u'obj4-\N{SNOWMAN}'}, {'name': 'obj5'}, {'name': 'obj6'}, ])), swob.Response(status=202), swob.Response(json.dumps([ ])), swob.Response(status=202), ]) as swift: self.assertEqual(list(container_deleter.mark_for_deletion( swift, 'account', 'container', '', 'end', 'pre', timestamp=utils.Timestamp(ts), yield_time=0, )), [(5, 'obj5'), (6, 'obj6'), (6, None)]) self.assertEqual(swift.calls, [ ('GET', '/v1/account/container', 'format=json&marker=&end_marker=end&prefix=pre', {}, None), ('UPDATE', '/v1/.expiring_objects/' + ts.split('.')[0], '', { 'X-Backend-Allow-Private-Methods': 'True', 'X-Backend-Storage-Policy-Index': '0', 'X-Timestamp': ts}, mock.ANY), ('GET', '/v1/account/container', 'format=json&marker=obj6&end_marker=end&prefix=pre', {}, None), ('UPDATE', '/v1/.expiring_objects/' + ts.split('.')[0], '', { 'X-Backend-Allow-Private-Methods': 'True', 'X-Backend-Storage-Policy-Index': '0', 'X-Timestamp': ts}, mock.ANY), ]) self.assertEqual( json.loads(swift.calls[-3].body), container_deleter.make_delete_jobs( 'account', 'container', ['obj1', 'obj2', 'obj3', u'obj4-\N{SNOWMAN}', 'obj5'], utils.Timestamp(ts) ) ) self.assertEqual( json.loads(swift.calls[-1].body), container_deleter.make_delete_jobs( 'account', 'container', ['obj6'], utils.Timestamp(ts) ) )
def test_mark_for_deletion_one_update_no_yield(self): ts = '1558463777.42739' with FakeInternalClient([ swob.Response( json.dumps([ { 'name': '/obj1' }, { 'name': 'obj2' }, { 'name': 'obj3' }, ])), swob.Response(json.dumps([])), swob.Response(status=202), ]) as swift: self.assertEqual( container_deleter.mark_for_deletion( swift, 'account', 'container', '', '', '', timestamp=utils.Timestamp(ts), yield_time=None, ), 3) self.assertEqual(swift.calls, [ ('GET', '/v1/account/container', 'format=json&marker=&end_marker=&prefix=', {}, None), ('GET', '/v1/account/container', 'format=json&marker=obj3&end_marker=&prefix=', {}, None), ('UPDATE', '/v1/.expiring_objects/' + ts.split('.')[0], '', { 'X-Backend-Allow-Private-Methods': 'True', 'X-Backend-Storage-Policy-Index': '0', 'X-Timestamp': ts }, mock.ANY), ]) self.assertEqual( json.loads(swift.calls[-1].body), container_deleter.make_delete_jobs('account', 'container', ['/obj1', 'obj2', 'obj3'], utils.Timestamp(ts)))
def test_mark_for_deletion_empty_no_yield(self): with FakeInternalClient([ swob.Response(json.dumps([])), ]) as swift: self.assertEqual( container_deleter.mark_for_deletion( swift, 'account', 'container', 'marker', 'end', 'prefix', timestamp=None, yield_time=None, ), 0) self.assertEqual(swift.calls, [ ('GET', '/v1/account/container', 'format=json&marker=marker&end_marker=end&prefix=prefix', {}, None), ])
def test_mark_for_deletion_empty_with_yield(self): with FakeInternalClient([ swob.Response(json.dumps([ ])), ]) as swift: self.assertEqual(list(container_deleter.mark_for_deletion( swift, 'account', 'container', 'marker', 'end', 'prefix', timestamp=None, yield_time=0.5, )), [(0, None)]) self.assertEqual(swift.calls, [ ('GET', '/v1/account/container', 'format=json&marker=marker&end_marker=end&prefix=prefix', {}, None), ])