)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"e9d9a9d54167ac939abc824b4ec20e1b1749f6ce","unresolved":true,"context_lines":[{"line_number":16,"context_line":"Tests in test/unit/container/test_reconciler.py seem to rely on this"},{"line_number":17,"context_line":"behaviour, so this patch adds a capture_unexpected_calls option for"},{"line_number":18,"context_line":"FakeSwift which defauts to True. This allows the reconciler tests to"},{"line_number":19,"context_line":"opt out of the new stricter call capturing."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Idc6b6b5a2b665538e861700f5d0996fc39368f5b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"450434b5_ebe61cec","line":19,"updated":"2024-10-11 13:34:50.000000000","message":"this is unfortunate, but I haven\u0027t had chance to research whether the reconciler tests could be reworked. They seem to dynamically register methods with FakeSwift.","commit_id":"056b2afbd71bfc6ace3157390344bb8d459600df"}],"test/unit/common/middleware/test_helpers.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fef7a5a34c8a1f371e6e1ad0883de4d2e655a9d2","unresolved":true,"context_lines":[{"line_number":156,"context_line":"        self.assertEqual(2, swift.call_count)"},{"line_number":157,"context_line":"        self.assertEqual([(\u0027GET\u0027, \u0027/v1/a/c/o\u0027),"},{"line_number":158,"context_line":"                          (\u0027GET\u0027, \u0027/v1/a/c/o?p\u003dq\u0027)],"},{"line_number":159,"context_line":"                         swift.calls)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        req.query_string \u003d \u0027p\u003dz\u0027"},{"line_number":162,"context_line":"        with self.assertRaises(KeyError):"}],"source_content_type":"text/x-python","patch_set":2,"id":"6d338390_243e0e56","line":159,"updated":"2024-10-11 13:33:38.000000000","message":"this needed fixing","commit_id":"056b2afbd71bfc6ace3157390344bb8d459600df"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"08994165f0197c9322c63f9862e99778ba5f74b2","unresolved":true,"context_lines":[{"line_number":156,"context_line":"        self.assertEqual(2, swift.call_count)"},{"line_number":157,"context_line":"        self.assertEqual([(\u0027GET\u0027, \u0027/v1/a/c/o\u0027),"},{"line_number":158,"context_line":"                          (\u0027GET\u0027, \u0027/v1/a/c/o?p\u003dq\u0027)],"},{"line_number":159,"context_line":"                         swift.calls)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        req.query_string \u003d \u0027p\u003dz\u0027"},{"line_number":162,"context_line":"        with self.assertRaises(KeyError):"}],"source_content_type":"text/x-python","patch_set":2,"id":"34574665_80c77b38","line":159,"in_reply_to":"6d338390_243e0e56","updated":"2024-10-12 03:54:07.000000000","message":"As an alternate fix, we could call `swift.clear_calls()` between sub-tests. Meh.","commit_id":"056b2afbd71bfc6ace3157390344bb8d459600df"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fef7a5a34c8a1f371e6e1ad0883de4d2e655a9d2","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        self.assertEqual([(\u0027GET\u0027, \u0027/v1/a/c/o\u0027),"},{"line_number":166,"context_line":"                          (\u0027GET\u0027, \u0027/v1/a/c/o?p\u003dq\u0027),"},{"line_number":167,"context_line":"                          (\u0027GET\u0027, \u0027/v1/a/c/o?p\u003dz\u0027)],"},{"line_number":168,"context_line":"                         swift.calls)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def test_GET_and_HEAD_registered(self):"},{"line_number":171,"context_line":"        # verify that a registered HEAD response will be preferred over GET for"}],"source_content_type":"text/x-python","patch_set":2,"id":"7de94ed9_b33018a0","line":168,"updated":"2024-10-11 13:33:38.000000000","message":"this is drive-by to increase coverage","commit_id":"056b2afbd71bfc6ace3157390344bb8d459600df"}],"test/unit/container/test_reconciler.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"08994165f0197c9322c63f9862e99778ba5f74b2","unresolved":true,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __init__(self):"},{"line_number":64,"context_line":"        self.storage_policy \u003d defaultdict("},{"line_number":65,"context_line":"            partial(helpers.FakeSwift, capture_unexpected_calls\u003dFalse))"},{"line_number":66,"context_line":"        self._mock_oldest_spi_map \u003d {}"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def __getattribute__(self, name):"}],"source_content_type":"text/x-python","patch_set":2,"id":"b26d018b_425c9a54","line":65,"updated":"2024-10-12 03:54:07.000000000","message":"Oh my -- what?? Separate `FakeSwift`s for separate policies?","commit_id":"056b2afbd71bfc6ace3157390344bb8d459600df"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"08994165f0197c9322c63f9862e99778ba5f74b2","unresolved":true,"context_lines":[{"line_number":85,"context_line":"                policy_index \u003d int(env[\u0027HTTP_X_BACKEND_STORAGE_POLICY_INDEX\u0027])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        try:"},{"line_number":88,"context_line":"            return self.storage_policy[policy_index].__call__("},{"line_number":89,"context_line":"                env, start_response)"},{"line_number":90,"context_line":"        except KeyError:"},{"line_number":91,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"b4efa6d3_04ef765c","line":88,"range":{"start_line":88,"start_character":52,"end_line":88,"end_character":61},"updated":"2024-10-12 03:54:07.000000000","message":"*sigh*","commit_id":"056b2afbd71bfc6ace3157390344bb8d459600df"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"08994165f0197c9322c63f9862e99778ba5f74b2","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        except KeyError:"},{"line_number":91,"context_line":"            pass"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        if method \u003d\u003d \u0027PUT\u0027:"},{"line_number":94,"context_line":"            resp_class \u003d swob.HTTPCreated"},{"line_number":95,"context_line":"        else:"},{"line_number":96,"context_line":"            resp_class \u003d swob.HTTPNotFound"}],"source_content_type":"text/x-python","patch_set":2,"id":"e7ff7129_a32ebafa","line":93,"updated":"2024-10-12 03:54:07.000000000","message":"Yeah, we should really re-work these tests to not need any of the rest of this... in a later patch.","commit_id":"056b2afbd71bfc6ace3157390344bb8d459600df"}]}
