)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1625251baa9eb8e409c2b025fe10bca979e48c8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"870e981f_6e5091a4","updated":"2025-09-19 21:19:26.000000000","message":"all the typo fixes seem like a win, the updates to the debug prints seem good to me, I think asserts on durability are probably the right idea and the new helpers are one way to do that.  We should disable internal-client retries.","commit_id":"e4281e5480dac3fc382f00ebdbab121bff0ae5ba"}],"test/probe/test_timestamp_collision.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1625251baa9eb8e409c2b025fe10bca979e48c8b","unresolved":true,"context_lines":[{"line_number":110,"context_line":"        self.container_name \u003d \u0027badtest\u0027"},{"line_number":111,"context_line":"        self.object_name \u003d \u0027badnews\u0027"},{"line_number":112,"context_line":"        self.swift \u003d InternalClient("},{"line_number":113,"context_line":"            \u0027/etc/swift/internal-client.conf\u0027, \u0027probe-test\u0027, 1)"},{"line_number":114,"context_line":"        self.swift.create_container("},{"line_number":115,"context_line":"            self.account, self.container_name,"},{"line_number":116,"context_line":"            headers\u003d{\u0027x-storage-policy\u0027: self.policy.name})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9df38c99_631e8891","line":113,"updated":"2025-09-19 21:19:26.000000000","message":"good catch!","commit_id":"e4281e5480dac3fc382f00ebdbab121bff0ae5ba"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1625251baa9eb8e409c2b025fe10bca979e48c8b","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        self.assertFalse("},{"line_number":192,"context_line":"            any([basename.endswith(\u0027#d\u0027)"},{"line_number":193,"context_line":"                 for basename, ext in"},{"line_number":194,"context_line":"                 [os.path.splitext(df) for df in df2node.keys()]]),"},{"line_number":195,"context_line":"            [df2node.keys()])"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def test_overlapping_commit(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"4e28af05_c3240687","line":194,"updated":"2025-09-19 21:19:26.000000000","message":"these comprehension is sort of dense and similar (any vs all)","commit_id":"e4281e5480dac3fc382f00ebdbab121bff0ae5ba"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1625251baa9eb8e409c2b025fe10bca979e48c8b","unresolved":true,"context_lines":[{"line_number":192,"context_line":"            any([basename.endswith(\u0027#d\u0027)"},{"line_number":193,"context_line":"                 for basename, ext in"},{"line_number":194,"context_line":"                 [os.path.splitext(df) for df in df2node.keys()]]),"},{"line_number":195,"context_line":"            [df2node.keys()])"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def test_overlapping_commit(self):"},{"line_number":198,"context_line":"        contents \u003d b\u0027asdfb\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"6eadfe0f_944faabc","line":195,"updated":"2025-09-19 21:19:26.000000000","message":"IIRC the second argument to assert[True|False] is a custom error message:\n\ndid you want to say `list(keys())`???\n\n```\n\u003e\u003e\u003e [{\u0027foo\u0027: 1, \u0027bar\u0027: 2}.keys()]\n[dict_keys([\u0027foo\u0027, \u0027bar\u0027])]\n\u003e\u003e\u003e list({\u0027foo\u0027: 1, \u0027bar\u0027: 2}.keys())\n[\u0027foo\u0027, \u0027bar\u0027]\n```","commit_id":"e4281e5480dac3fc382f00ebdbab121bff0ae5ba"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1625251baa9eb8e409c2b025fe10bca979e48c8b","unresolved":true,"context_lines":[{"line_number":233,"context_line":"            self.assertEqual(self.policy.ec_n_unique_fragments, len(df2node))"},{"line_number":234,"context_line":"            self.assertAllDurable(df2node)"},{"line_number":235,"context_line":"            self.assertDatafilesMissingMetaKey(df2node, \u0027foo\u0027)"},{"line_number":236,"context_line":"            self.assertDatafilesHaveMetaKey(df2node, \u0027bar\u0027)"},{"line_number":237,"context_line":"            # let the first one go through now"},{"line_number":238,"context_line":"            proceed.send(None)"},{"line_number":239,"context_line":"            gt.wait()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7b6e8414_d4e12242","line":236,"updated":"2025-09-19 21:19:26.000000000","message":"FWIW I don\u0027t have much love for these All/Have/Missing helpers\n\nI think:\n\n```\nself.assertEqual(policy.uniq_frags, self._count_durable(df2node))\n```\n\nmight be better, or even\n\n```\nself.assertEqual([], self._find_meta_keys(\u0027foo\u0027))\nself.assertEqual(1, len(set(self._find_meta_keys(\u0027bar\u0027))))\n```\n\nmight sometimes be slightly better, although their custom \"collect the frags that had the un-expected metadata\" failure message may be useful.","commit_id":"e4281e5480dac3fc382f00ebdbab121bff0ae5ba"}]}
