)]}'
{"nova/tests/unit/test_api_validation.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3052c2f85dcaa452ff1a062eb39a8186b8f64833","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        schema_v20_str[\u0027properties\u0027][\u0027foo\u0027] \u003d {\u0027type\u0027: \u0027string\u0027}"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        @validation.schema(schema_none)"},{"line_number":79,"context_line":"        @validation.schema(schema_v20_str, \u00272.0\u0027, \u00272.0\u0027)"},{"line_number":80,"context_line":"        @validation.schema(schema_v21_int, \u00272.1\u0027)"},{"line_number":81,"context_line":"        def post(req, body):"},{"line_number":82,"context_line":"            return \u0027Validation succeeded.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_71f47cce","line":79,"updated":"2015-09-10 09:23:10.000000000","message":"hmm, wait, does that make sense?","commit_id":"a34a60dbd308a49a2c8694b5bfae92589b708a58"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7666e48aa65a9b5185ef3002d04db6dc9eca688a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        schema_v20_str[\u0027properties\u0027][\u0027foo\u0027] \u003d {\u0027type\u0027: \u0027string\u0027}"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        @validation.schema(schema_none)"},{"line_number":79,"context_line":"        @validation.schema(schema_v20_str, \u00272.0\u0027, \u00272.0\u0027)"},{"line_number":80,"context_line":"        @validation.schema(schema_v21_int, \u00272.1\u0027)"},{"line_number":81,"context_line":"        def post(req, body):"},{"line_number":82,"context_line":"            return \u0027Validation succeeded.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_0c4ba35a","line":79,"in_reply_to":"da20952f_71f47cce","updated":"2015-09-10 09:42:32.000000000","message":"Yeah, make sense technically :)\n\nbut from the viewpoint of actual usage, it doesn\u0027t make sense because it is not necessary to specify both.","commit_id":"a34a60dbd308a49a2c8694b5bfae92589b708a58"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6d8bb9518695686ba3302fc406118b78f528ea5c","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        req \u003d FakeRequest()"},{"line_number":108,"context_line":"        req.legacy_v2 \u003d True"},{"line_number":109,"context_line":"        self.assertEqual(post(body\u003d{\u0027abc\u0027: 1}, req\u003dreq),"},{"line_number":110,"context_line":"                         \u0027Validation succeeded.\u0027)"},{"line_number":111,"context_line":"        detail \u003d (\"Invalid input for field/attribute foo. Value: bar. \""},{"line_number":112,"context_line":"                  \"\u0027bar\u0027 is not of type \u0027integer\u0027\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_f5ca934e","line":109,"updated":"2015-09-11 03:02:36.000000000","message":"\u0027abc\u0027 -\u003e \u0027foo\u0027 it passing due to additional property is allowed :).","commit_id":"044a380fb945fc56f62b16382bbc40cd9a833fcc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0f3302fb598682a2ea95004a754a690d6194caf3","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        req \u003d FakeRequest()"},{"line_number":108,"context_line":"        req.legacy_v2 \u003d True"},{"line_number":109,"context_line":"        self.assertEqual(post(body\u003d{\u0027abc\u0027: 1}, req\u003dreq),"},{"line_number":110,"context_line":"                         \u0027Validation succeeded.\u0027)"},{"line_number":111,"context_line":"        detail \u003d (\"Invalid input for field/attribute foo. Value: bar. \""},{"line_number":112,"context_line":"                  \"\u0027bar\u0027 is not of type \u0027integer\u0027\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_c8133200","line":109,"in_reply_to":"da20952f_f5ca934e","updated":"2015-09-11 03:36:34.000000000","message":"oops, nice catch!!","commit_id":"044a380fb945fc56f62b16382bbc40cd9a833fcc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9bb6beaec3f1534e9f90b02d971319d5a73bb8c9","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.check_validation_error(self.post, body\u003d{\u0027foo\u0027: \u0027bar\u0027},"},{"line_number":91,"context_line":"                                    expected_detail\u003ddetail, req\u003dreq)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_validate_request_with_none_schema(self):"},{"line_number":94,"context_line":"        schema_none \u003d {"},{"line_number":95,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":96,"context_line":"            \u0027properties\u0027: {"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_f8773300","line":93,"updated":"2015-11-17 05:13:14.000000000","message":"This name is a little confuse for what this is test for. How about we call it as test_validate_v2compatible_request_with_none_min_version","commit_id":"13a3df7a9ea09e698b138e7261db79c6ec3104d7"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"12b6dd35b25790761f93e8ad3fb80b87ae1711af","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.check_validation_error(self.post, body\u003d{\u0027foo\u0027: \u0027bar\u0027},"},{"line_number":91,"context_line":"                                    expected_detail\u003ddetail, req\u003dreq)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_validate_request_with_none_schema(self):"},{"line_number":94,"context_line":"        schema_none \u003d {"},{"line_number":95,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":96,"context_line":"            \u0027properties\u0027: {"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_388a9bc0","line":93,"in_reply_to":"ba8a016a_f8773300","updated":"2015-11-17 05:17:02.000000000","message":"thanks for your review, nice name for fitting the above test_validate_v2compatible_request()","commit_id":"13a3df7a9ea09e698b138e7261db79c6ec3104d7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"fb58232bf8d59a50cbbe32983555b5d5cf031e46","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        req \u003d FakeRequest()"},{"line_number":108,"context_line":"        req.legacy_v2 \u003d True"},{"line_number":109,"context_line":"        self.assertEqual(post(body\u003d{\u0027foo\u0027: 1}, req\u003dreq),"},{"line_number":110,"context_line":"                         \u0027Validation succeeded.\u0027)"},{"line_number":111,"context_line":"        detail \u003d (\"Invalid input for field/attribute foo. Value: bar. \""},{"line_number":112,"context_line":"                  \"\u0027bar\u0027 is not of type \u0027integer\u0027\")"},{"line_number":113,"context_line":"        self.check_validation_error(post, body\u003d{\u0027foo\u0027: \u0027bar\u0027},"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_3855bb4f","line":110,"updated":"2015-11-17 05:13:42.000000000","message":"supernit, The expected value should be at first argument?","commit_id":"13a3df7a9ea09e698b138e7261db79c6ec3104d7"}]}
