)]}'
{"keystone/controllers.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d6c248489bfac5cce495ce0b621d34653b97a5b3","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                for r in s.get_v3_resources():"},{"line_number":153,"context_line":"                    yield r"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        resources \u003d {"},{"line_number":156,"context_line":"            \u0027resources\u0027: dict(all_resources())"},{"line_number":157,"context_line":"        }"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_8d0e71e3","line":155,"updated":"2014-08-12 20:46:01.000000000","message":"i\u0027d just return here for simplicity - naming the dict doesn\u0027t add anything meaningful","commit_id":"1dd5bfeeff380bc73ebccff16ef890eeaddf7c56"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a4b33cd6787fb0bde2b475d8337f2907e859268d","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                for r in s.get_v3_resources():"},{"line_number":153,"context_line":"                    yield r"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        resources \u003d {"},{"line_number":156,"context_line":"            \u0027resources\u0027: dict(all_resources())"},{"line_number":157,"context_line":"        }"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7ac7a964_3d0590c2","line":155,"in_reply_to":"baada198_8d0e71e3","updated":"2014-08-14 01:16:16.000000000","message":"Done","commit_id":"1dd5bfeeff380bc73ebccff16ef890eeaddf7c56"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d6c248489bfac5cce495ce0b621d34653b97a5b3","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def get_version_v3(self, context):"},{"line_number":162,"context_line":"        versions \u003d self._get_versions_list(context)"},{"line_number":163,"context_line":"        if \u0027v3\u0027 in _VERSIONS:"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            if context[\u0027headers\u0027].get(\u0027Accept\u0027) \u003d\u003d \u0027application/json-home\u0027:"},{"line_number":166,"context_line":"                return wsgi.render_response("},{"line_number":167,"context_line":"                    body\u003dself._get_json_home_v3(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_0dfa61ba","line":164,"updated":"2014-08-12 20:46:01.000000000","message":"extra whitespace can be cut","commit_id":"1dd5bfeeff380bc73ebccff16ef890eeaddf7c56"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a4b33cd6787fb0bde2b475d8337f2907e859268d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def get_version_v3(self, context):"},{"line_number":162,"context_line":"        versions \u003d self._get_versions_list(context)"},{"line_number":163,"context_line":"        if \u0027v3\u0027 in _VERSIONS:"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            if context[\u0027headers\u0027].get(\u0027Accept\u0027) \u003d\u003d \u0027application/json-home\u0027:"},{"line_number":166,"context_line":"                return wsgi.render_response("},{"line_number":167,"context_line":"                    body\u003dself._get_json_home_v3(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ac7a964_5d0a4cd3","line":164,"in_reply_to":"baada198_0dfa61ba","updated":"2014-08-14 01:16:16.000000000","message":"Done","commit_id":"1dd5bfeeff380bc73ebccff16ef890eeaddf7c56"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"0515a4a650054baadb4fdca9b7c4a093f1ac28d3","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def _get_json_home_v3(self):"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        def all_resources():"},{"line_number":149,"context_line":"            for router in self._routers:"},{"line_number":150,"context_line":"                for resource in router.v3_resources:"},{"line_number":151,"context_line":"                    yield resource"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_59cfb1b3","line":148,"updated":"2014-08-25 13:09:52.000000000","message":"not that this takes too long, but if it gets hammered a lot then it should really be precomputed / cached","commit_id":"ed2fb9d59e0cf6c7a3d5724c7753306c2bab7028"}],"keystone/tests/test_versions.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d6c248489bfac5cce495ce0b621d34653b97a5b3","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        # then the server responds with a JSON Home document."},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        client \u003d self.client(self.public_app)"},{"line_number":307,"context_line":"        resp \u003d client.get(\u0027/v3/\u0027, headers\u003d{\u0027Accept\u0027: \u0027application/json-home\u0027})"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        self.assertThat(resp.status, tt_matchers.Equals(\u0027200 OK\u0027))"},{"line_number":310,"context_line":"        self.assertThat(resp.headers[\u0027Content-Type\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_ed136d00","line":307,"updated":"2014-08-12 20:46:01.000000000","message":"is the trailing slash required?","commit_id":"1dd5bfeeff380bc73ebccff16ef890eeaddf7c56"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a4b33cd6787fb0bde2b475d8337f2907e859268d","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        # then the server responds with a JSON Home document."},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        client \u003d self.client(self.public_app)"},{"line_number":307,"context_line":"        resp \u003d client.get(\u0027/v3/\u0027, headers\u003d{\u0027Accept\u0027: \u0027application/json-home\u0027})"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        self.assertThat(resp.status, tt_matchers.Equals(\u0027200 OK\u0027))"},{"line_number":310,"context_line":"        self.assertThat(resp.headers[\u0027Content-Type\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ac7a964_3dbaf0e1","line":307,"in_reply_to":"baada198_ed136d00","updated":"2014-08-14 01:16:16.000000000","message":"I\u0027ve removed it to show that it\u0027s not required. I just copied it from other tests.","commit_id":"1dd5bfeeff380bc73ebccff16ef890eeaddf7c56"}]}
