)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"04a7bd619c32a3cc65f936c92a3c0a1d0a254f65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c9bd9f57_41fc6677","updated":"2025-11-04 10:11:16.000000000","message":"good cleanup/consistency 👍","commit_id":"89e9ced9e56c0f3c5f7cdf75f40ff8c5f0dc04c3"}],"test/unit/common/test_db_replicator.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"04a7bd619c32a3cc65f936c92a3c0a1d0a254f65","unresolved":true,"context_lines":[{"line_number":2371,"context_line":"        # patch this will restore the original db_replicator.ReplConnection"},{"line_number":2372,"context_line":"        self.addCleanup(p.stop)"},{"line_number":2373,"context_line":"        self._ring \u003d unit.FakeRing()"},{"line_number":2374,"context_line":"        p \u003d mock.patch.object(db_replicator.ring, \u0027Ring\u0027, self._get_ring)"},{"line_number":2375,"context_line":"        p.start()"},{"line_number":2376,"context_line":"        self.addCleanup(p.stop)"},{"line_number":2377,"context_line":"        self.logger \u003d debug_logger()"}],"source_content_type":"text/x-python","patch_set":1,"id":"741978f7_aaa6a975","line":2374,"range":{"start_line":2374,"start_character":58,"end_line":2374,"end_character":72},"updated":"2025-11-04 10:11:16.000000000","message":"nit: probably could just have ``return_value\u003dself._ring`` and dispense with ``_get_ring()``. I don\u0027t see ``_get_ring`` being called anywhere else","commit_id":"89e9ced9e56c0f3c5f7cdf75f40ff8c5f0dc04c3"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"04a7bd619c32a3cc65f936c92a3c0a1d0a254f65","unresolved":true,"context_lines":[{"line_number":2373,"context_line":"        self._ring \u003d unit.FakeRing()"},{"line_number":2374,"context_line":"        p \u003d mock.patch.object(db_replicator.ring, \u0027Ring\u0027, self._get_ring)"},{"line_number":2375,"context_line":"        p.start()"},{"line_number":2376,"context_line":"        self.addCleanup(p.stop)"},{"line_number":2377,"context_line":"        self.logger \u003d debug_logger()"},{"line_number":2378,"context_line":""},{"line_number":2379,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"95c020b7_00ac7307","line":2376,"updated":"2025-11-04 10:11:16.000000000","message":"IIUC this is also more robust\n\n\u003e If setUp() fails, meaning that tearDown() is not called, then any cleanup functions added will still be called.\n\n\nhttps://docs.python.org/3/library/unittest.html#unittest.TestCase.addCleanup","commit_id":"89e9ced9e56c0f3c5f7cdf75f40ff8c5f0dc04c3"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"04a7bd619c32a3cc65f936c92a3c0a1d0a254f65","unresolved":true,"context_lines":[{"line_number":2379,"context_line":"    def tearDown(self):"},{"line_number":2380,"context_line":"        rmtree(self.root)"},{"line_number":2381,"context_line":""},{"line_number":2382,"context_line":"    def _get_ring(self, *args, **kwargs):"},{"line_number":2383,"context_line":"        return self._ring"},{"line_number":2384,"context_line":""},{"line_number":2385,"context_line":"    def _get_broker(self, account, container\u003dNone, node_index\u003d0):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ec6c0da0_a9e2b08a","line":2382,"updated":"2025-11-04 10:11:16.000000000","message":"+1 no need for the lambda","commit_id":"89e9ced9e56c0f3c5f7cdf75f40ff8c5f0dc04c3"}]}
