)]}'
{"glance/tests/unit/common/test_clients.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"c6ce27a13411e0e2d7fcc1b763a856b7b63839d2","unresolved":false,"context_lines":[{"line_number":1030,"context_line":"    def test_add_delete_member(self):"},{"line_number":1031,"context_line":"        \"\"\"Tests deleting image members\"\"\""},{"line_number":1032,"context_line":"        self.client.add_member(UUID2, \u0027pattieblack\u0027)"},{"line_number":1033,"context_line":"        self.assertTrue(self.client.delete_member(UUID2, \u0027pattieblack\u0027))"},{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":""},{"line_number":1036,"context_line":"class TestBaseClient(testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOH%2F%2FwcM%3D","line":1033,"updated":"2013-03-28 20:36:12.000000000","message":"All of the changes above this point are just re-formating the code.","commit_id":"2e3922c0e1f7ccf1db861815853415df3abfc0c2"}],"glance/tests/unit/common/test_utils.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"d2ebba22284ba81ef1ae3fb7bfa054c04527c169","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def test_cooperative_reader_of_iterator_stop_iteration_err(self):"},{"line_number":68,"context_line":"        \"\"\"Ensure cooperative reader supports iterator backends too\"\"\""},{"line_number":69,"context_line":"        self.iterator \u003d None"},{"line_number":70,"context_line":"        reader \u003d utils.CooperativeReader([l * 3 for l in \u0027\u0027])"},{"line_number":71,"context_line":"        chunks \u003d []"},{"line_number":72,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAPH%2F%2F68s%3D","line":69,"updated":"2013-05-20 09:01:41.000000000","message":"Why is this needed?","commit_id":"6bb87a849cefa74429688d4d6a30e2645e0ed212"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"d2ebba22284ba81ef1ae3fb7bfa054c04527c169","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        actual \u003d utils.bool_from_string(1)"},{"line_number":127,"context_line":"        self.assertEqual(True, actual)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def test_get_response(self):"},{"line_number":130,"context_line":"        resp \u003d webob.Response()"},{"line_number":131,"context_line":"        resp.headers \u003d {\"x-image-meta-*\": \u0027test\u0027}"},{"line_number":132,"context_line":"        result \u003d utils.get_image_meta_from_headers(resp)"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAPH%2F%2F68M%3D","line":129,"updated":"2013-05-20 09:01:41.000000000","message":"would test_get_meta_from_headers be clearer?","commit_id":"6bb87a849cefa74429688d4d6a30e2645e0ed212"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"d2ebba22284ba81ef1ae3fb7bfa054c04527c169","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        def fake_function():"},{"line_number":174,"context_line":"            pass"},{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            result \u003d utils.mutating(fake_function)"},{"line_number":177,"context_line":"        except Exception:"},{"line_number":178,"context_line":"            self.fail(msg\u003d\u0027can not return wrapped function\u0027)"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAPH%2F%2F68E%3D","line":176,"updated":"2013-05-20 09:01:41.000000000","message":"Is there anything that could be asserted here?","commit_id":"6bb87a849cefa74429688d4d6a30e2645e0ed212"}],"glance/tests/unit/common/test_wsgi.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"669639a6d44944d210594247505124710be589fb","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def test_content_type_missing(self):"},{"line_number":31,"context_line":"        request \u003d wsgi.Request.blank(\u0027/tests/123\u0027)"},{"line_number":32,"context_line":"        self.assertRaises("},{"line_number":33,"context_line":"            exception.InvalidContentType,"},{"line_number":34,"context_line":"            request.get_content_type, (\u0027application/xml\u0027))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def test_content_type_unsupported(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F0rI%3D","line":33,"updated":"2013-03-11 12:25:16.000000000","message":"Hey, :)\n\nAre these changes needed?","commit_id":"8a68c3f0b82d2149d99951fe98dfa174797e4365"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"669639a6d44944d210594247505124710be589fb","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        request.method \u003d \u0027POST\u0027"},{"line_number":234,"context_line":"        request.body \u003d \u0027fake_body\u0027"},{"line_number":235,"context_line":"        request.headers[\u0027transfer-encoding\u0027] \u003d 0"},{"line_number":236,"context_line":"        self.assertTrue(\u0027transfer-encoding\u0027 in request.headers)"},{"line_number":237,"context_line":"        self.assertTrue(wsgi.JSONRequestDeserializer().has_body(request))"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_get_bind_addr_default_value(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F0qY%3D","line":236,"updated":"2013-03-11 12:25:16.000000000","message":"Hey,\n\nI might be missing something but, what are you actually testing here? You set transfer-encoding right above this assert.","commit_id":"8a68c3f0b82d2149d99951fe98dfa174797e4365"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"5de09af38b823dab5cf62ca334bdd63c787ab001","unresolved":false,"context_lines":[{"line_number":83,"context_line":"               {\u0027controller\u0027: None,"},{"line_number":84,"context_line":"                \u0027format\u0027: None,"},{"line_number":85,"context_line":"                \u0027action\u0027: \u0027update\u0027,"},{"line_number":86,"context_line":"                \u0027id\u0027: 12}]}"},{"line_number":87,"context_line":"        expected \u003d {\u0027action\u0027: \u0027update\u0027, \u0027id\u0027: 12}"},{"line_number":88,"context_line":"        actual \u003d wsgi.Resource(None, None, None).get_action_args(env)"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAN3%2F%2F0JE%3D","line":86,"updated":"2013-03-11 17:09:57.000000000","message":"Is this reformat needed?","commit_id":"a5b41d88e1e9b2038b74786590d419f9b0114a14"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"c6ce27a13411e0e2d7fcc1b763a856b7b63839d2","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        fixture \u003d \u0027kjasdklfjsklajf\u0027"},{"line_number":215,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":216,"context_line":"                          wsgi.JSONRequestDeserializer().from_json,"},{"line_number":217,"context_line":"                          fixture)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def test_default_no_body(self):"},{"line_number":220,"context_line":"        request \u003d wsgi.Request.blank(\u0027/\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOH%2F%2Fwb4%3D","line":217,"updated":"2013-03-28 20:36:12.000000000","message":"Is this reformat needed?","commit_id":"2e3922c0e1f7ccf1db861815853415df3abfc0c2"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"2487c9c2201b02eb4c6a24d6fef016dd513556eb","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"class ResourceTest(test_utils.BaseTestCase):"},{"line_number":83,"context_line":"    def test_get_action_args(self):"},{"line_number":84,"context_line":"        env \u003d {"},{"line_number":85,"context_line":"            \u0027wsgiorg.routing_args\u0027: ["},{"line_number":86,"context_line":"                None,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOH%2F%2FvhQ%3D","line":83,"updated":"2013-03-29 18:45:00.000000000","message":"I hate to be this nit picky, but is there a reason for remove?","commit_id":"803a3d31bd83d4d61d38e1b0efa2a7c225e3c53c"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"2487c9c2201b02eb4c6a24d6fef016dd513556eb","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"class JSONRequestDeserializerTest(test_utils.BaseTestCase):"},{"line_number":186,"context_line":"    def test_has_body_no_content_length(self):"},{"line_number":187,"context_line":"        request \u003d wsgi.Request.blank(\u0027/\u0027)"},{"line_number":188,"context_line":"        request.method \u003d \u0027POST\u0027"},{"line_number":189,"context_line":"        request.body \u003d \u0027asdf\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOH%2F%2FvhE%3D","line":186,"updated":"2013-03-29 18:45:00.000000000","message":"And this blank line also","commit_id":"803a3d31bd83d4d61d38e1b0efa2a7c225e3c53c"}],"glance/tests/unit/test_clients.py":[{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"627d59ec6b97bcb73317ff76884e1c0eb187dfa3","unresolved":false,"context_lines":[{"line_number":1047,"context_line":"    Test proper actions made for both valid and invalid requests"},{"line_number":1048,"context_line":"    against a Registry service"},{"line_number":1049,"context_line":"    \"\"\""},{"line_number":1050,"context_line":"    def test_connect_kwards_default_values(self):"},{"line_number":1051,"context_line":"        actual \u003d test_client.BaseClient(\u0027127.0.0.1\u0027).get_connect_kwargs()"},{"line_number":1052,"context_line":"        self.assertEqual({\u0027timeout\u0027: None}, actual)"},{"line_number":1053,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4hg%3D","line":1050,"updated":"2013-03-07 18:10:09.000000000","message":"Do you mean s/kwards/kwargs/ ?","commit_id":"03e407fbc7f24d13fe3d6e8f8cd9fd4eff0dd76d"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"627d59ec6b97bcb73317ff76884e1c0eb187dfa3","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"        actual \u003d test_client.BaseClient(\u0027127.0.0.1\u0027).get_connect_kwargs()"},{"line_number":1052,"context_line":"        self.assertEqual({\u0027timeout\u0027: None}, actual)"},{"line_number":1053,"context_line":""},{"line_number":1054,"context_line":"    def test_connect_kwards(self):"},{"line_number":1055,"context_line":"        base_client \u003d test_client.BaseClient("},{"line_number":1056,"context_line":"            host\u003d\u0027127.0.0.1\u0027, port\u003d80, timeout\u003d1, use_ssl\u003dTrue)"},{"line_number":1057,"context_line":"        actual \u003d base_client.get_connect_kwargs()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4hc%3D","line":1054,"updated":"2013-03-07 18:10:09.000000000","message":"and here","commit_id":"03e407fbc7f24d13fe3d6e8f8cd9fd4eff0dd76d"}],"glance/tests/unit/test_config.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"25d6a97b9ac56505a319ff61a066dae0ac839cfd","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from glance.api.middleware import context"},{"line_number":25,"context_line":"from glance.common import config"},{"line_number":26,"context_line":"from oslo.config import cfg"},{"line_number":27,"context_line":"from glance.tests import utils as test_utils"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4kA%3D","line":26,"updated":"2013-03-07 17:57:46.000000000","message":"I do not see where this is used.  Is it needed?","commit_id":"03e407fbc7f24d13fe3d6e8f8cd9fd4eff0dd76d"}],"glance/tests/unit/test_utils.py":[{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"627d59ec6b97bcb73317ff76884e1c0eb187dfa3","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        meat \u003d \u0027\u0027.join(chunks)"},{"line_number":64,"context_line":"        self.assertEqual(meat, \u0027aaabbbcccdddeeefffggghhh\u0027)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_cooperative_reader_of_iterator_stop_iteration_err(self):"},{"line_number":67,"context_line":"        \"\"\"Ensure cooperative reader supports iterator backends too\"\"\""},{"line_number":68,"context_line":"        self.iterator \u003d None"},{"line_number":69,"context_line":"        reader \u003d utils.CooperativeReader([l * 3 for l in \u0027\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4hQ%3D","line":66,"updated":"2013-03-07 18:10:09.000000000","message":"+1!","commit_id":"03e407fbc7f24d13fe3d6e8f8cd9fd4eff0dd76d"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"25d6a97b9ac56505a319ff61a066dae0ac839cfd","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_limiting_reader_fails(self):"},{"line_number":99,"context_line":"        \"\"\"Ensure limiting reader class"},{"line_number":100,"context_line":"        throws exceptions if limit exceeded\"\"\""},{"line_number":101,"context_line":"        BYTES \u003d 1024"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        def _consume_all_iter():"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4i4%3D","line":100,"updated":"2013-03-07 17:57:46.000000000","message":"Is this reformat needed?  If HACKING.rst suggests that the quotes be on their own lines.","commit_id":"03e407fbc7f24d13fe3d6e8f8cd9fd4eff0dd76d"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"627d59ec6b97bcb73317ff76884e1c0eb187dfa3","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        self.assertEqual(True, actual)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_get_response(self):"},{"line_number":132,"context_line":"        resp \u003d webob.Response()"},{"line_number":133,"context_line":"        result \u003d utils.get_image_meta_from_headers(resp)"},{"line_number":134,"context_line":"        self.assertEqual({\u0027properties\u0027: {}}, result)"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4hA%3D","line":132,"updated":"2013-03-07 18:10:09.000000000","message":"This test would cover a bit more ground if you added some relevant headers like \"x-image-meta-*\" to the response.","commit_id":"03e407fbc7f24d13fe3d6e8f8cd9fd4eff0dd76d"}],"glance/tests/unit/test_wsgi.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"25d6a97b9ac56505a319ff61a066dae0ac839cfd","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                   \u0027action\u0027: \u0027update\u0027,"},{"line_number":86,"context_line":"                   \u0027id\u0027: 12}"},{"line_number":87,"context_line":"        env \u003d {\u0027wsgiorg.routing_args\u0027: ["},{"line_number":88,"context_line":"                None, actions]}"},{"line_number":89,"context_line":"        expected \u003d {\u0027action\u0027: \u0027update\u0027, \u0027id\u0027: 12}"},{"line_number":90,"context_line":"        actual \u003d wsgi.Resource(None, None, None).get_action_args(env)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4io%3D","line":88,"updated":"2013-03-07 17:57:46.000000000","message":"Is this reformat needed.","commit_id":"03e407fbc7f24d13fe3d6e8f8cd9fd4eff0dd76d"}]}
