)]}'
{"glance/tests/unit/v1/test_api.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"7794b537dee10ea31cfcd3065ddb46a1aee76755","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from sqlalchemy import exc"},{"line_number":29,"context_line":"import stubout"},{"line_number":30,"context_line":"import webob"},{"line_number":31,"context_line":"from webob.exc import HTTPBadRequest"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"import  glance.api"},{"line_number":34,"context_line":"import glance.api.common"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F4m0%3D","line":31,"updated":"2013-03-07 17:34:19.000000000","message":"This line does not seem to be needed.  Use webob.exc.HTTPBadRequest.","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"2f9ea52eba0eacc4cfb389fcc17dce7a7d9dbdfc","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from sqlalchemy import exc"},{"line_number":29,"context_line":"import stubout"},{"line_number":30,"context_line":"import webob"},{"line_number":31,"context_line":"from webob.exc import HTTPBadRequest"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"import  glance.api"},{"line_number":34,"context_line":"import glance.api.common"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F4lg%3D","line":31,"in_reply_to":"AAAAN3%2F%2F4m0%3D","updated":"2013-03-07 17:43:48.000000000","message":"Adding to John\u0027s comment, we explicitly have rules against importing classes by name from modules.","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"7794b537dee10ea31cfcd3065ddb46a1aee76755","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        res \u003d req.get_response(self.api)"},{"line_number":222,"context_line":"        self.assertEquals(res.status_int, 200)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def test_show_deleted_image_as_non_admin(self):"},{"line_number":225,"context_line":"        \"\"\""},{"line_number":226,"context_line":"        Tests that the /images/\u003cid\u003e registry API endpoint"},{"line_number":227,"context_line":"        returns a 404 for deleted image to non-admin user."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F4l4%3D","line":224,"updated":"2013-03-07 17:34:19.000000000","message":"I would assume leave the original name.  Is there a reason for the change?","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"2f9ea52eba0eacc4cfb389fcc17dce7a7d9dbdfc","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"        req.body \u003d json.dumps(dict(image_memberships\u003dfixture))"},{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":"        res \u003d req.get_response(self.api)"},{"line_number":2146,"context_line":"        self.assertEquals(res.status_int, webob.exc.HTTPNotFound.code)"},{"line_number":2147,"context_line":""},{"line_number":2148,"context_line":"    def test_update_all_image_members_invalid_membership_association(self):"},{"line_number":2149,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F4kQ%3D","line":2146,"updated":"2013-03-07 17:43:48.000000000","message":"I think it would make more sense to use \"404\" here in place of the longer webob.exc.HTTPNotFound.code.","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"fe8a441c599c7c26592355b2d821b3aaad23c880","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"        req.body \u003d json.dumps(dict(image_memberships\u003dfixture))"},{"line_number":2144,"context_line":""},{"line_number":2145,"context_line":"        res \u003d req.get_response(self.api)"},{"line_number":2146,"context_line":"        self.assertEquals(res.status_int, webob.exc.HTTPNotFound.code)"},{"line_number":2147,"context_line":""},{"line_number":2148,"context_line":"    def test_update_all_image_members_invalid_membership_association(self):"},{"line_number":2149,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F3Xs%3D","line":2146,"in_reply_to":"AAAAN3%2F%2F4kQ%3D","updated":"2013-03-08 09:57:14.000000000","message":"Apply this in the other changes as well.","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"fe8a441c599c7c26592355b2d821b3aaad23c880","unresolved":false,"context_lines":[{"line_number":2213,"context_line":"        req.body \u003d json.dumps(dict(image_memberships\u003dfixture))"},{"line_number":2214,"context_line":""},{"line_number":2215,"context_line":"        res \u003d req.get_response(api)"},{"line_number":2216,"context_line":"        self.assertEquals(res.status_int, webob.exc.HTTPForbidden.code)"},{"line_number":2217,"context_line":""},{"line_number":2218,"context_line":"    def test_update_all_image_members(self):"},{"line_number":2219,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F3Xg%3D","line":2216,"updated":"2013-03-08 09:57:14.000000000","message":"Hey,\n\nTry to keep consistency as much as possible. In some asserts you used 403 and here you\u0027re using the code.\n\nAs Mark suggested above, the int status code is good enough, so I\u0027d say you could use it here and in other asserts as well.","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"2f9ea52eba0eacc4cfb389fcc17dce7a7d9dbdfc","unresolved":false,"context_lines":[{"line_number":2351,"context_line":""},{"line_number":2352,"context_line":"    def test_add_member_to_non_exist_image(self):"},{"line_number":2353,"context_line":"        \u0027\u0027\u0027"},{"line_number":2354,"context_line":"        Test check that member can be successfully added"},{"line_number":2355,"context_line":""},{"line_number":2356,"context_line":"        \u0027\u0027\u0027"},{"line_number":2357,"context_line":"        fixture \u003d dict(can_share\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F4lQ%3D","line":2354,"updated":"2013-03-07 17:43:48.000000000","message":"This comment doesn\u0027t fit with the test case.","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"fe8a441c599c7c26592355b2d821b3aaad23c880","unresolved":false,"context_lines":[{"line_number":2395,"context_line":""},{"line_number":2396,"context_line":"    def test_add_member_to_image_bad_request(self):"},{"line_number":2397,"context_line":"        \u0027\u0027\u0027"},{"line_number":2398,"context_line":"        Test check that member can be successfully added"},{"line_number":2399,"context_line":""},{"line_number":2400,"context_line":"        \u0027\u0027\u0027"},{"line_number":2401,"context_line":"        UUID8 \u003d _gen_uuid()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F3Xc%3D","line":2398,"updated":"2013-03-08 09:57:14.000000000","message":"Hey,\n\ncopy / paste ? :D","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"fe8a441c599c7c26592355b2d821b3aaad23c880","unresolved":false,"context_lines":[{"line_number":2462,"context_line":""},{"line_number":2463,"context_line":"    def test_delete_image_member_non_shared_image_forbidden(self):"},{"line_number":2464,"context_line":"        \u0027\u0027\u0027"},{"line_number":2465,"context_line":"        Test update image members raises right exception"},{"line_number":2466,"context_line":""},{"line_number":2467,"context_line":"        \u0027\u0027\u0027"},{"line_number":2468,"context_line":"        test_rserver_api \u003d rserver.API(self.mapper)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F3XY%3D","line":2465,"updated":"2013-03-08 09:57:14.000000000","message":"ditto :)","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"fe8a441c599c7c26592355b2d821b3aaad23c880","unresolved":false,"context_lines":[{"line_number":3821,"context_line":"    def test_add_member(self):"},{"line_number":3822,"context_line":"        \"\"\""},{"line_number":3823,"context_line":"        Tests adding image members raises right exception"},{"line_number":3824,"context_line":"        \"\"\""},{"line_number":3825,"context_line":"        test_router_api \u003d router.API(self.mapper)"},{"line_number":3826,"context_line":"        self.api \u003d test_utils.FakeAuthMiddleware("},{"line_number":3827,"context_line":"            test_router_api, is_admin\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F3XQ%3D","line":3824,"updated":"2013-03-08 09:57:14.000000000","message":"ditto :)","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"7794b537dee10ea31cfcd3065ddb46a1aee76755","unresolved":false,"context_lines":[{"line_number":4245,"context_line":""},{"line_number":4246,"context_line":"    def test_noop_redact_location(self):"},{"line_number":4247,"context_line":"        \"\"\"Check no-op location"},{"line_number":4248,"context_line":"        redaction does not change original metadata\"\"\""},{"line_number":4249,"context_line":"        image_meta \u003d {\u0027size\u0027: 3, \u0027id\u0027: \u0027123\u0027}"},{"line_number":4250,"context_line":"        redacted_image_meta \u003d {\u0027size\u0027: 3, \u0027id\u0027: \u0027123\u0027}"},{"line_number":4251,"context_line":"        copy_image_meta \u003d copy.deepcopy(image_meta)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F4l8%3D","line":4248,"updated":"2013-03-07 17:34:19.000000000","message":"Is this reformat needed?","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"fe8a441c599c7c26592355b2d821b3aaad23c880","unresolved":false,"context_lines":[{"line_number":4245,"context_line":""},{"line_number":4246,"context_line":"    def test_noop_redact_location(self):"},{"line_number":4247,"context_line":"        \"\"\"Check no-op location"},{"line_number":4248,"context_line":"        redaction does not change original metadata\"\"\""},{"line_number":4249,"context_line":"        image_meta \u003d {\u0027size\u0027: 3, \u0027id\u0027: \u0027123\u0027}"},{"line_number":4250,"context_line":"        redacted_image_meta \u003d {\u0027size\u0027: 3, \u0027id\u0027: \u0027123\u0027}"},{"line_number":4251,"context_line":"        copy_image_meta \u003d copy.deepcopy(image_meta)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F3Xw%3D","line":4248,"in_reply_to":"AAAAN3%2F%2F4l8%3D","updated":"2013-03-08 09:57:14.000000000","message":"Hey,\n\nIn addition to John\u0027s comment. That docstring isn\u0027t compliant with the HACKING file. I\u0027d just leave the original one","commit_id":"0c93e2d070ffa40821517fad9fcc375931985dff"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"721dc16db1862e91085f5d8438dc8001901db685","unresolved":false,"context_lines":[{"line_number":29,"context_line":"import stubout"},{"line_number":30,"context_line":"import webob"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"import  glance.api"},{"line_number":33,"context_line":"import glance.api.common"},{"line_number":34,"context_line":"from glance.api.v1 import filters"},{"line_number":35,"context_line":"from glance.api.v1 import images"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FwGc%3D","line":32,"updated":"2013-03-13 20:22:54.000000000","message":"extra space...","commit_id":"9efecb2c4e1f6ebc4250d64877a282c11498e8d6"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"52724983c78e16c66dcf2d1662fe852abcc55331","unresolved":false,"context_lines":[{"line_number":1920,"context_line":"        self.assertEqual("},{"line_number":1921,"context_line":"            True, glance.api.v1.filters.validate(\u0027protected\u0027, \u0027FALSE\u0027))"},{"line_number":1922,"context_line":"        self.assertEqual("},{"line_number":1923,"context_line":"            False, glance.api.v1.filters.validate(\u0027protected\u0027, \u0027-1\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPH%2F%2F9Qw%3D","line":1923,"updated":"2013-05-17 19:50:15.000000000","message":"Can you use assertTrue and assertFalse here instead?","commit_id":"74c21e5e19fa352e211483990227a3fcac035786"}]}
