)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"c422fe8886ff163851462574e835033fea6f3b3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c812fb13_626ca037","updated":"2023-10-27 18:35:56.000000000","message":"what do you think!?\n\n\tself \u003d \u003ctest.unit.common.test_utils.TestStatsdLoggingDelegation testMethod\u003dtest_graphite_format\u003e\n\n\t    def test_graphite_format(self):\n\t\tself.logger \u003d utils.get_logger({\n\t\t    \u0027log_statsd_host\u0027: \u0027localhost\u0027,\n\t\t    \u0027log_statsd_port\u0027: str(self.port),\n\t\t    \u0027log_statsd_metric_prefix\u0027: \u0027my_prefix\u0027,\n\t\t    \u0027log_statsd_label_mode\u0027: \u0027graphite\u0027,\n\t\t}, \u0027pfx\u0027)\n\t\u003e       self._test_labled_format({\n\t\t    \u0027increment\u0027: \u0027my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;\u0027\n\t\t    \u0027result\u003dok:1|c\u0027,\n\t\t    \u0027decrement\u0027: \u0027my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;\u0027\n\t\t    \u0027result\u003dok:1|c\u0027,\n\t\t    \u0027timing\u0027: \u0027my_prefix_the_timing;action\u003dsome;log_name\u003dpfx;\u0027\n\t\t    \u0027result\u003dok\u0027\n\t\t    \u0027:6280.0|ms\u0027,\n\t\t    \u0027update_stats\u0027: \u0027my_prefix_the_stat;action\u003dsome;log_name\u003dpfx;\u0027\n\t\t    \u0027result\u003dok:3|c\u0027,\n\t\t})\n\n\tswift/test/unit/common/test_utils.py:5745: \n\t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\tswift/test/unit/common/test_utils.py:5664: in _test_labled_format\n\t    self.fail(\u0027%r failed %s:\\n%s\u0027 % (\n\tE   AssertionError: \u0027graphite\u0027 failed decrement(\u0027the_counter\u0027, labels\u003d{\u0027action\u0027: \u0027some\u0027, \u0027result\u0027: \u0027ok\u0027}, legacy_format\u003d\u0027{action}.counter\u0027):\n\tE   \u0027my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;result\u003dok:1|c\u0027 !\u003d \u0027my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;result\u003dok:-1|c\u0027\n\tE   - my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;result\u003dok:1|c\n\tE   + my_prefix_the_counter;action\u003dsome;log_name\u003dpfx;result\u003dok:-1|c\n\tE   ?                                                          +\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d short test summary info \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\tFAILED swift/test/unit/common/test_utils.py::TestStatsdLoggingDelegation::test_graphite_format - AssertionError: \u0027graphite\u0027 failed decrement(\u0027the_counter\u0027, labels\u003d{\u0027action\u0027: \u0027some\u0027, \u0027result\u0027: \u0027ok\u0027}, legacy_format\u003d\u0027{action}.counter\u0027):\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 1 failed, 16 passed in 2.51s \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d","commit_id":"5286af133c604469015216f516512f252d52f2f1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c9abf1432b23c1335e5c01f3e60b1a2bf87657d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c34b1f29_076e16c5","updated":"2023-10-31 04:46:45.000000000","message":"Sure? Sure. w/e","commit_id":"87b0762c96629a1fc085c86224bcbf674bd15a0a"}],"test/unit/common/test_utils.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c9abf1432b23c1335e5c01f3e60b1a2bf87657d7","unresolved":true,"context_lines":[{"line_number":5657,"context_line":"            call \u003d method_to_call[method_name]"},{"line_number":5658,"context_line":"            try:"},{"line_number":5659,"context_line":"                self.assertStat(expected, method,"},{"line_number":5660,"context_line":"                                *call.args, **call.kwargs)"},{"line_number":5661,"context_line":"            except AssertionError as e:"},{"line_number":5662,"context_line":"                descriptive_call \u003d mock.mock._format_call_signature("},{"line_number":5663,"context_line":"                    method_name, call.args, call.kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"b6629994_9277bd3a","line":5660,"updated":"2023-10-31 04:46:45.000000000","message":"I can\u0027t decide whether to be impressed or horrified at how we\u0027re using `mock.call`...\n\nNeeds to be using the tuple-slice syntax, though, to get lower-constraints passing. (Or I suppose we could up-rev our min supported `mock` -- but I\u0027d rather push on https://review.opendev.org/c/openstack/swift/+/853590 to open up a path to *removing* `mock` in favor of `unittest.mock`)","commit_id":"87b0762c96629a1fc085c86224bcbf674bd15a0a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c9abf1432b23c1335e5c01f3e60b1a2bf87657d7","unresolved":true,"context_lines":[{"line_number":5659,"context_line":"                self.assertStat(expected, method,"},{"line_number":5660,"context_line":"                                *call.args, **call.kwargs)"},{"line_number":5661,"context_line":"            except AssertionError as e:"},{"line_number":5662,"context_line":"                descriptive_call \u003d mock.mock._format_call_signature("},{"line_number":5663,"context_line":"                    method_name, call.args, call.kwargs)"},{"line_number":5664,"context_line":"                self.fail(\u0027%r failed %s:\\n%s\u0027 % ("},{"line_number":5665,"context_line":"                    self.logger.logger.statsd_client.label_mode,"}],"source_content_type":"text/x-python","patch_set":3,"id":"21c4b12d_c92f5b5f","line":5662,"range":{"start_line":5662,"start_character":45,"end_line":5662,"end_character":67},"updated":"2023-10-31 04:46:45.000000000","message":"Makes me a little squeamish -- do we directly call this anywhere else?","commit_id":"87b0762c96629a1fc085c86224bcbf674bd15a0a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c9abf1432b23c1335e5c01f3e60b1a2bf87657d7","unresolved":true,"context_lines":[{"line_number":5663,"context_line":"                    method_name, call.args, call.kwargs)"},{"line_number":5664,"context_line":"                self.fail(\u0027%r failed %s:\\n%s\u0027 % ("},{"line_number":5665,"context_line":"                    self.logger.logger.statsd_client.label_mode,"},{"line_number":5666,"context_line":"                    descriptive_call, e))"},{"line_number":5667,"context_line":""},{"line_number":5668,"context_line":"    def test_disabled_format(self):"},{"line_number":5669,"context_line":"        self.logger \u003d utils.get_logger({"}],"source_content_type":"text/x-python","patch_set":3,"id":"4df1b9c2_576ac713","line":5666,"range":{"start_line":5666,"start_character":38,"end_line":5666,"end_character":39},"updated":"2023-10-31 04:46:45.000000000","message":"OK, check: the *one assert* in `assertStat` is an `assertEqual` between (what should be) two byte strings -- I don\u0027t think the lost call stack will be terribly interesting, and the `str` of the error ought to be interesting/useful enough.","commit_id":"87b0762c96629a1fc085c86224bcbf674bd15a0a"}]}
