)]}'
{"test/unit/common/test_utils.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8189cadbf41313e2dbeaa605fc0d4008930e8bbb","unresolved":false,"context_lines":[{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        def syslog_handler_catcher(*args, **kwargs):"},{"line_number":1500,"context_line":"            syslog_handler_args.append((args, kwargs))"},{"line_number":1501,"context_line":"            return orig_sysloghandler(*args, **kwargs)"},{"line_number":1502,"context_line":""},{"line_number":1503,"context_line":"        syslog_handler_catcher.LOG_LOCAL0 \u003d orig_sysloghandler.LOG_LOCAL0"},{"line_number":1504,"context_line":"        syslog_handler_catcher.LOG_LOCAL3 \u003d orig_sysloghandler.LOG_LOCAL3"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_b34830cc","line":1501,"updated":"2017-10-20 22:39:03.000000000","message":"I\u0027ve played around with generalizing this, as some sort of\n\n with call_probe(to_patch) as probe:\n     ...\n\nmanager...","commit_id":"9c97c80b2631bedebbd3196e87f0696a6c67b8be"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6f07123dadbedbe7a8c0f7aefa522900f105f311","unresolved":false,"context_lines":[{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        def syslog_handler_catcher(*args, **kwargs):"},{"line_number":1500,"context_line":"            syslog_handler_args.append((args, kwargs))"},{"line_number":1501,"context_line":"            return orig_sysloghandler(*args, **kwargs)"},{"line_number":1502,"context_line":""},{"line_number":1503,"context_line":"        syslog_handler_catcher.LOG_LOCAL0 \u003d orig_sysloghandler.LOG_LOCAL0"},{"line_number":1504,"context_line":"        syslog_handler_catcher.LOG_LOCAL3 \u003d orig_sysloghandler.LOG_LOCAL3"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_65578f04","line":1501,"in_reply_to":"3f4b6375_3314404e","updated":"2017-10-20 22:59:24.000000000","message":"class probe(object):\n     def __init__(self, thing, attr):\n         self.to_patch \u003d thing\n         self.attr \u003d attr\n         self.func \u003d getattr(thing, attr, None)\n         if not callable(self.func):\n             raise ValueError\n         self.reset_probe()\n         self.__module__ \u003d self.func.__module__\n         self.__name__ \u003d self.func.__name__\n         self.__doc__ \u003d self.func.__doc__\n \n     def reset_probe(self):\n         self.in_order_calls \u003d []\n         self.in_order_results \u003d []\n \n     def __call__(self, *args, **kwargs):\n         self.in_order_calls.append(ProbeCall(args, kwargs))\n         result \u003d self.func(*args, **kwargs)\n         self.in_order_results.append(ProbeCallWithResult(args, kwargs, result))\n         return result\n \n     def __enter__(self):\n         setattr(self.to_patch, self.attr, self)\n         return self\n \n     def __exit__(self, *args):\n         setattr(self.to_patch, self.attr, self.func)\n\nisn\u0027t half bad","commit_id":"9c97c80b2631bedebbd3196e87f0696a6c67b8be"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"73930d9d2e423d417fac4262fe018ede61d2e84d","unresolved":false,"context_lines":[{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        def syslog_handler_catcher(*args, **kwargs):"},{"line_number":1500,"context_line":"            syslog_handler_args.append((args, kwargs))"},{"line_number":1501,"context_line":"            return orig_sysloghandler(*args, **kwargs)"},{"line_number":1502,"context_line":""},{"line_number":1503,"context_line":"        syslog_handler_catcher.LOG_LOCAL0 \u003d orig_sysloghandler.LOG_LOCAL0"},{"line_number":1504,"context_line":"        syslog_handler_catcher.LOG_LOCAL3 \u003d orig_sysloghandler.LOG_LOCAL3"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_3314404e","line":1501,"in_reply_to":"3f4b6375_b34830cc","updated":"2017-10-20 22:55:26.000000000","message":"At a previous job of mine, we had a thing that did pretty much that.\n\nhttp://search.cpan.org/~airwave/Test-Wiretap-1.01/lib/Test/Wiretap.pm\n\nIt\u0027s the wrong language to help us here, but the interface isn\u0027t too terrible.","commit_id":"9c97c80b2631bedebbd3196e87f0696a6c67b8be"}]}
