)]}'
{"tests/test_exception.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"0d7046ea4285490a75590f425fac46de0c50754c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        CONF.debug \u003d False"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        risky_info \u003d uuid.uuid4().hex"},{"line_number":117,"context_line":"        e \u003d exception.ForbiddenAction(message\u003drisky_info, action\u003d\u0027foo\u0027)"},{"line_number":118,"context_line":"        self.assertValidJsonRendering(e)"},{"line_number":119,"context_line":"        self.assertNotIn(risky_info, str(e))"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FrhY%3D","line":117,"updated":"2013-01-09 19:32:00.000000000","message":"Interesting catch... when I first saw this code, I didn\u0027t see a use case for providing both message \u0026 action, as they would never be rendered together.\n\nI do have a nit here though-- can you generate \u0027action\u0027 with a uuid to illustrate that it\u0027s an arbitrary value, and then check that it\u0027s present in the json output? e.g.:\n\n  self.assertIn(action, str(e))","commit_id":"86fc4b4bc4e5756df73e72fc44ccf4137e07e8f2"}]}
