)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4671e162fce8d7168a02ce95d6478d22a96fdc63","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a0a0951e_848756b4","updated":"2025-10-13 17:55:49.000000000","message":"LGTM!\n\n963877: test-db-replicator (trivial): just one tmpdir | https://review.opendev.org/c/openstack/swift/+/963877","commit_id":"c0fefe80b3114383a2d89ae43ee502534f9ccda5"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"34ede1247ce83d64d5c7cf58c1dab57b73294d55","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"146b2e05_a6b88510","updated":"2025-10-14 09:10:15.000000000","message":"recheck \n\ntest only change","commit_id":"c0fefe80b3114383a2d89ae43ee502534f9ccda5"}],"test/unit/common/test_db_replicator.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4671e162fce8d7168a02ce95d6478d22a96fdc63","unresolved":true,"context_lines":[{"line_number":447,"context_line":"        # recon cache path"},{"line_number":448,"context_line":"        self.recon_cache \u003d mkdtemp()"},{"line_number":449,"context_line":"        rmtree(self.recon_cache, ignore_errors\u003dTrue)"},{"line_number":450,"context_line":"        os.mkdir(self.recon_cache)"},{"line_number":451,"context_line":"        self.logger \u003d debug_logger(\u0027test-replicator\u0027)"},{"line_number":452,"context_line":"        self.temp_dir \u003d mkdtemp()"},{"line_number":453,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"59cf7665_7d8f39e7","line":450,"updated":"2025-10-13 17:55:49.000000000","message":"what an interesting way to spell \"I want a new empty directory\"???\n\nmaybe `self.recon_cache \u003d os.path.join(self.temp_dir, \u0027cache\u0027)`","commit_id":"c0fefe80b3114383a2d89ae43ee502534f9ccda5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4671e162fce8d7168a02ce95d6478d22a96fdc63","unresolved":true,"context_lines":[{"line_number":455,"context_line":"        for patcher in self._patchers:"},{"line_number":456,"context_line":"            patcher.stop()"},{"line_number":457,"context_line":"        rmtree(self.recon_cache, ignore_errors\u003dTrue)"},{"line_number":458,"context_line":"        rmtree(self.temp_dir, ignore_errors\u003dTrue)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def _patch(self, patching_fn, *args, **kwargs):"},{"line_number":461,"context_line":"        patcher \u003d patching_fn(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ef0a1388_f8f23c98","line":458,"updated":"2025-10-13 17:55:49.000000000","message":"FWIW I\u0027ve come to prefer self.addCleanup - although in my reading that\u0027s only for cases when setUp itself fails mid-way through.","commit_id":"c0fefe80b3114383a2d89ae43ee502534f9ccda5"}],"test/unit/container/test_replicator.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4671e162fce8d7168a02ce95d6478d22a96fdc63","unresolved":true,"context_lines":[{"line_number":1334,"context_line":"        expected \u003d \u0027Failed to update sync_store, path: %s, db: %s: \u0027 % ("},{"line_number":1335,"context_line":"            quote(broker.path), broker.db_file"},{"line_number":1336,"context_line":"        )"},{"line_number":1337,"context_line":"        self.assertEqual([expected], lines)"},{"line_number":1338,"context_line":""},{"line_number":1339,"context_line":"    def test_update_sync_store(self):"},{"line_number":1340,"context_line":"        klass \u003d \u0027swift.container.sync_store.ContainerSyncStore\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"0d2ce78f_41dd64b8","line":1337,"updated":"2025-10-13 17:55:49.000000000","message":"I also prefer this order, I think it\u0027s recommened from the JUnit author as a convention that\u0027s become a kind of cultural norm for JUnit derived test suites:\n\nhttps://sourceforge.net/p/junit/mailman/message/3338997/\n\n... but i\u0027m not sure the BDFL really buys it\n\nhttps://mail.python.org/pipermail/python-dev/2010-December/106954.html\n\nand AFAIK python in general has no strong preference (unlike JUnit):\n\nhttps://github.com/python/cpython/issues/54782\n\nI think our code base is somewhat inconsistent.","commit_id":"c0fefe80b3114383a2d89ae43ee502534f9ccda5"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cb455aec28dcd8905a45ccdc8f85ef60d131fc74","unresolved":true,"context_lines":[{"line_number":1334,"context_line":"        expected \u003d \u0027Failed to update sync_store, path: %s, db: %s: \u0027 % ("},{"line_number":1335,"context_line":"            quote(broker.path), broker.db_file"},{"line_number":1336,"context_line":"        )"},{"line_number":1337,"context_line":"        self.assertEqual([expected], lines)"},{"line_number":1338,"context_line":""},{"line_number":1339,"context_line":"    def test_update_sync_store(self):"},{"line_number":1340,"context_line":"        klass \u003d \u0027swift.container.sync_store.ContainerSyncStore\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"8c73fede_2aad8b94","line":1337,"in_reply_to":"0d2ce78f_41dd64b8","updated":"2025-10-13 18:24:21.000000000","message":"I *prefer* it because my IDE annotates \u0027expected\u0027 vs\u0027 actual\u0027 based on that order, but like you I have found nothing that prescribes it.\n\nI *push for it* when it\u0027s the existing norm in the same test class or module","commit_id":"c0fefe80b3114383a2d89ae43ee502534f9ccda5"}]}
