)]}'
{"reddwarf/openstack/common/wsgi.py":[{"author":{"_account_id":6156,"name":"Justin Hopper","email":"justin.hopper@hp.com","username":"justin-hopper"},"change_message_id":"4724f2b952017298ef9b488c799d01106759c79a","unresolved":false,"context_lines":[{"line_number":769,"context_line":"        else:"},{"line_number":770,"context_line":"            result \u003d dict()"},{"line_number":771,"context_line":"            for attr in node.attributes.keys():"},{"line_number":772,"context_line":"                if attr \u003d\u003d \u0027xmlns\u0027:"},{"line_number":773,"context_line":"                    continue"},{"line_number":774,"context_line":"                result[attr] \u003d str(node.attributes[attr].nodeValue)"},{"line_number":775,"context_line":"            for child in node.childNodes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2F458%3D","line":772,"updated":"2013-06-18 22:17:19.000000000","message":"Need to override this in the Reddwarf Deserializer","commit_id":"5bde50bc0ce3b70f40f1d595dc5e4b6339f6da59"}],"trove/tests/api/databases.py":[{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"927d5d12aa0df0e18dbcc3a60c6052809c38f53c","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    @test(depends_on\u003d[test_create_database])"},{"line_number":117,"context_line":"    def test_fails_when_creating_a_db_twice(self):"},{"line_number":118,"context_line":"        databases \u003d []"},{"line_number":119,"context_line":"        databases.append({\"name\": self.dbname, \"character_set\": \"latin2\","},{"line_number":120,"context_line":"                          \"collate\": \"latin2_general_ci\"})"},{"line_number":121,"context_line":"        databases.append({\"name\": self.dbname2})"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FVus%3D","line":119,"updated":"2013-07-03 18:36:31.000000000","message":"Had this been failing before and simply not raising an error? If so that\u0027s pretty funny.","commit_id":"ccdf59f21e5c2771577b2087e33b81daf6033b6d"},{"author":{"_account_id":6156,"name":"Justin Hopper","email":"justin.hopper@hp.com","username":"justin-hopper"},"change_message_id":"6fdceed105d3cf3f0d5178db5b51b5e2d5a9821d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    @test(depends_on\u003d[test_create_database])"},{"line_number":117,"context_line":"    def test_fails_when_creating_a_db_twice(self):"},{"line_number":118,"context_line":"        databases \u003d []"},{"line_number":119,"context_line":"        databases.append({\"name\": self.dbname, \"character_set\": \"latin2\","},{"line_number":120,"context_line":"                          \"collate\": \"latin2_general_ci\"})"},{"line_number":121,"context_line":"        databases.append({\"name\": self.dbname2})"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FVns%3D","line":119,"in_reply_to":"AAAAPn%2F%2FVus%3D","updated":"2013-07-03 18:50:44.000000000","message":"In this case not failing per se but definitely not having any effect.  There were other similar cases.  Once the validation went in there were a few failures where the tests had diverged from the api.  So, another good reason to have this tight validation :)","commit_id":"ccdf59f21e5c2771577b2087e33b81daf6033b6d"}],"trove/tests/api/instances_actions.py":[{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"927d5d12aa0df0e18dbcc3a60c6052809c38f53c","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \"\"\"Create a MySQL user we can use for this test.\"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        users \u003d [{\"name\": MYSQL_USERNAME, \"password\": MYSQL_PASSWORD,"},{"line_number":123,"context_line":"                  \"databases\": [{\"name\": MYSQL_USERNAME}]}]"},{"line_number":124,"context_line":"        self.dbaas.users.create(instance_info.id, users)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        def has_user():"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FVso%3D","line":123,"updated":"2013-07-03 18:36:31.000000000","message":"Does this update change the behavior of the API?","commit_id":"ccdf59f21e5c2771577b2087e33b81daf6033b6d"},{"author":{"_account_id":6156,"name":"Justin Hopper","email":"justin.hopper@hp.com","username":"justin-hopper"},"change_message_id":"6fdceed105d3cf3f0d5178db5b51b5e2d5a9821d","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \"\"\"Create a MySQL user we can use for this test.\"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        users \u003d [{\"name\": MYSQL_USERNAME, \"password\": MYSQL_PASSWORD,"},{"line_number":123,"context_line":"                  \"databases\": [{\"name\": MYSQL_USERNAME}]}]"},{"line_number":124,"context_line":"        self.dbaas.users.create(instance_info.id, users)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        def has_user():"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FVnY%3D","line":123,"in_reply_to":"AAAAPn%2F%2FVso%3D","updated":"2013-07-03 18:50:44.000000000","message":"This is a case where the validation caught an issue where at least by analysis this simply wasn\u0027t working.  There is no case, I could find where database (string) was a valid input.  If I missed this please let me know.","commit_id":"ccdf59f21e5c2771577b2087e33b81daf6033b6d"}],"trove/tests/api/mgmt/malformed_json.py":[{"author":{"_account_id":694,"name":"Tim Simpson","email":"tim.simpson@rackspace.com","username":"tim-simpson"},"change_message_id":"927d5d12aa0df0e18dbcc3a60c6052809c38f53c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                         \"Validation error: \""},{"line_number":142,"context_line":"                         \"%s is not valid under any of the given schemas; \""},{"line_number":143,"context_line":"                         \"%s is not of type \u0027integer\u0027; \""},{"line_number":144,"context_line":"                         \"%s does not match \u0027[0-9]+\u0027\" % (data, data, data))"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    @test"},{"line_number":147,"context_line":"    def test_bad_change_user_password(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FVwk%3D","line":144,"updated":"2013-07-03 18:36:31.000000000","message":"Excellent! This is exactly what I wanted to see. The new messages look amazing!","commit_id":"ccdf59f21e5c2771577b2087e33b81daf6033b6d"},{"author":{"_account_id":6156,"name":"Justin Hopper","email":"justin.hopper@hp.com","username":"justin-hopper"},"change_message_id":"6fdceed105d3cf3f0d5178db5b51b5e2d5a9821d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                         \"Validation error: \""},{"line_number":142,"context_line":"                         \"%s is not valid under any of the given schemas; \""},{"line_number":143,"context_line":"                         \"%s is not of type \u0027integer\u0027; \""},{"line_number":144,"context_line":"                         \"%s does not match \u0027[0-9]+\u0027\" % (data, data, data))"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    @test"},{"line_number":147,"context_line":"    def test_bad_change_user_password(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FVnE%3D","line":144,"in_reply_to":"AAAAPn%2F%2FVwk%3D","updated":"2013-07-03 18:50:44.000000000","message":"Glad you are happy with it Tim.  In the worst case where they mess up really bad, they\u0027ll get a lot of feedback.  The nice feature about this validation is that it finds all possible errors - not just the first one.","commit_id":"ccdf59f21e5c2771577b2087e33b81daf6033b6d"}]}
