)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"7296f97b0b2f3ac743a768e42febbaf906fe9362","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"50608a18_e7e85b28","updated":"2024-08-01 13:57:10.000000000","message":"This is helpful.  You saw a bug (unused test code) and I appreciate this fix.\n\nI might suggest the other acceptable solution for that bug would be to remove the un-used code; althought I\u0027m sure it\u0027s also reasonable to go a different direction and try to make it as useful as possible.","commit_id":"a06c104329a9229222f072ff70551def5da537f2"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bd5c38927128f5a762c7cda14592406b09138e7f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"128ab1a3_3d573dc7","updated":"2024-08-01 22:06:01.000000000","message":"idk!  back to you!","commit_id":"f477ea7436c49174e71723b96f36c77d5073ac13"}],"test/unit/obj/test_expirer.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"7296f97b0b2f3ac743a768e42febbaf906fe9362","unresolved":true,"context_lines":[{"line_number":1356,"context_line":"        x \u003d expirer.ObjectExpirer(self.conf, logger\u003dself.logger,"},{"line_number":1357,"context_line":"                                  swift\u003dfake_swift)"},{"line_number":1358,"context_line":"        # ... and we still expect all past async tasks to yield"},{"line_number":1359,"context_line":"        expected \u003d ["},{"line_number":1360,"context_line":"            self.make_task(self.past_time_container, self.past_time,"},{"line_number":1361,"context_line":"                           swob.wsgi_to_str(tgt), is_async_delete\u003dis_async)"},{"line_number":1362,"context_line":"            for (tgt, is_async) in ("}],"source_content_type":"text/x-python","patch_set":1,"id":"2269d3ed_4565f8e5","line":1359,"updated":"2024-08-01 13:57:10.000000000","message":"I don\u0027t understand; the test looks like it was originally written this way:\n\nhttps://review.opendev.org/c/openstack/swift/+/917070/2/test/unit/obj/test_expirer.py\n\nlike... there\u0027s *other* tests that assert we get all the right tasks when there\u0027s no delay, and there\u0027s test that assert we get async - do we need to cover that in this test as well?   how many of these expected lists do we want to have to grok/maintain in the same test?","commit_id":"a06c104329a9229222f072ff70551def5da537f2"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"f694e449faf976ac604d03079cf387238531fcc0","unresolved":true,"context_lines":[{"line_number":1356,"context_line":"        x \u003d expirer.ObjectExpirer(self.conf, logger\u003dself.logger,"},{"line_number":1357,"context_line":"                                  swift\u003dfake_swift)"},{"line_number":1358,"context_line":"        # ... and we still expect all past async tasks to yield"},{"line_number":1359,"context_line":"        expected \u003d ["},{"line_number":1360,"context_line":"            self.make_task(self.past_time_container, self.past_time,"},{"line_number":1361,"context_line":"                           swob.wsgi_to_str(tgt), is_async_delete\u003dis_async)"},{"line_number":1362,"context_line":"            for (tgt, is_async) in ("}],"source_content_type":"text/x-python","patch_set":1,"id":"b3a579e1_258d8206","line":1359,"in_reply_to":"2269d3ed_4565f8e5","updated":"2024-08-01 14:42:28.000000000","message":"the original runs the expirer and asserts the result twice, before and after configuring delay reaping\n\nhttps://review.opendev.org/c/openstack/swift/+/874806/24/test/unit/obj/test_expirer.py#965\n\nthe related change https://review.opendev.org/c/openstack/swift/+/917070/2/test/unit/obj/test_expirer.py adds some tasks which would change the expected result, and appears to drop the first assertion. It wasn\u0027t clear that dropping the assertion was intentional, but maybe it was and we should just delete the unused instance.","commit_id":"a06c104329a9229222f072ff70551def5da537f2"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bd5c38927128f5a762c7cda14592406b09138e7f","unresolved":true,"context_lines":[{"line_number":1291,"context_line":"                                  swob.wsgi_to_str(target_object),"},{"line_number":1292,"context_line":"                                  is_async_delete\u003dis_async)"},{"line_number":1293,"context_line":"            task_list.append(task)"},{"line_number":1294,"context_line":"        return task_list"},{"line_number":1295,"context_line":""},{"line_number":1296,"context_line":"    def test_iter_task_to_expire_with_delay_reaping_is_async(self):"},{"line_number":1297,"context_line":"        expire_time_target_object_is_async_list \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"05b5b655_073b4489","line":1294,"updated":"2024-08-01 22:06:01.000000000","message":"these both seem fine (helpful?)","commit_id":"f477ea7436c49174e71723b96f36c77d5073ac13"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0a75dc6bdd78c0ee900e3a2f9b441d14bcc4a380","unresolved":true,"context_lines":[{"line_number":1291,"context_line":"                                  swob.wsgi_to_str(target_object),"},{"line_number":1292,"context_line":"                                  is_async_delete\u003dis_async)"},{"line_number":1293,"context_line":"            task_list.append(task)"},{"line_number":1294,"context_line":"        return task_list"},{"line_number":1295,"context_line":""},{"line_number":1296,"context_line":"    def test_iter_task_to_expire_with_delay_reaping_is_async(self):"},{"line_number":1297,"context_line":"        expire_time_target_object_is_async_list \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"ccaadcb9_00e38b23","line":1294,"in_reply_to":"05b5b655_073b4489","updated":"2024-08-06 12:23:13.000000000","message":"yup we can use them elsewhere to make other tests easier to grok","commit_id":"f477ea7436c49174e71723b96f36c77d5073ac13"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0a75dc6bdd78c0ee900e3a2f9b441d14bcc4a380","unresolved":true,"context_lines":[{"line_number":1317,"context_line":"        aco_dict \u003d self._make_aco_dict(expire_time_target_object_is_async_list)"},{"line_number":1318,"context_line":"        task_account_container_list \u003d ["},{"line_number":1319,"context_line":"            (\u0027.expiring_objects\u0027, c)"},{"line_number":1320,"context_line":"            for c in aco_dict[\u0027.expiring_objects\u0027]"},{"line_number":1321,"context_line":"        ]"},{"line_number":1322,"context_line":"        fake_swift \u003d FakeInternalClient(aco_dict)"},{"line_number":1323,"context_line":"        # no accounts configured with delay_reaping"}],"source_content_type":"text/x-python","patch_set":2,"id":"4b1e12df_20180347","line":1320,"updated":"2024-08-06 12:23:13.000000000","message":"this is going to need sorting for PY2 (grrr) but I\u0027d rather go with the explicit list for simplicity","commit_id":"f477ea7436c49174e71723b96f36c77d5073ac13"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bd5c38927128f5a762c7cda14592406b09138e7f","unresolved":true,"context_lines":[{"line_number":1328,"context_line":"            (e, t, a)"},{"line_number":1329,"context_line":"            for e, t, a in expire_time_target_object_is_async_list"},{"line_number":1330,"context_line":"            if e !\u003d self.future_time"},{"line_number":1331,"context_line":"        ])"},{"line_number":1332,"context_line":"        observed \u003d list(x.iter_task_to_expire("},{"line_number":1333,"context_line":"            task_account_container_list, 0, 1))"},{"line_number":1334,"context_line":"        self.assertEqual(expected, observed)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3030db74_d4ce29d6","line":1331,"updated":"2024-08-01 22:06:01.000000000","message":"this expected comprehension seems sane ... ish?","commit_id":"f477ea7436c49174e71723b96f36c77d5073ac13"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bd5c38927128f5a762c7cda14592406b09138e7f","unresolved":true,"context_lines":[{"line_number":1350,"context_line":"                t.startswith(\u0027a1\u0027) and not ("},{"line_number":1351,"context_line":"                    t.startswith(\u0027a1/c1\u0027) and e \u003d\u003d self.past_time)"},{"line_number":1352,"context_line":"            )"},{"line_number":1353,"context_line":"        ])"},{"line_number":1354,"context_line":"        observed \u003d list(x.iter_task_to_expire("},{"line_number":1355,"context_line":"            task_account_container_list, 0, 1))"},{"line_number":1356,"context_line":"        self.assertEqual(expected, observed)"}],"source_content_type":"text/x-python","patch_set":2,"id":"608e8987_da4d5551","line":1353,"updated":"2024-08-01 22:06:01.000000000","message":"TROFLOLOLLO","commit_id":"f477ea7436c49174e71723b96f36c77d5073ac13"}]}
