)]}'
{"nova/hacking/checks.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"396815eb397187890a70a766da2b2409c11a2e67","unresolved":false,"context_lines":[{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    def __init__(self, tree, filename):"},{"line_number":495,"context_line":"        super(CheckForMockClosureCall, self).__init__(tree, filename)"},{"line_number":496,"context_line":"        self._mocked_closure_found \u003d False"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    def visit_FunctionDef(self, node):"},{"line_number":499,"context_line":"        if not node.name.startswith(\u0027test_\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_7ac7ab45","line":496,"updated":"2016-02-25 22:37:46.000000000","message":"This is a holdover from another approach.","commit_id":"5721ef7e38a3d4d78ba2e1f0052f0f9e2c09f25b"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"c278c9a966e68ecb58f011255990b54d6764a5eb","unresolved":false,"context_lines":[{"line_number":535,"context_line":""},{"line_number":536,"context_line":"        missed \u003d set(closures) - set(references)"},{"line_number":537,"context_line":"        if missed:"},{"line_number":538,"context_line":"            self.add_error(node, \u0027N348:Mock decorated closures not called: %s\u0027"},{"line_number":539,"context_line":"                    % \u0027,\u0027.join(missed))"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_1d4ac8c5","line":538,"updated":"2016-03-01 21:06:50.000000000","message":"Should be N349.","commit_id":"37c936612bd4324da2853a095043b436a4896104"}]}
