)]}'
{"cinder/api/contrib/quotas.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"364f9f639816ee0b6a53ebd1a412f35fb38c9d3d","unresolved":false,"context_lines":[{"line_number":216,"context_line":"                project \u003d keystone.projects.get(id,"},{"line_number":217,"context_line":"                                                subtree_as_ids\u003dsubtree_as_ids)"},{"line_number":218,"context_line":"                generic_project.parent_id \u003d project.parent_id"},{"line_number":219,"context_line":"                generic_project.subtree \u003d project.subtree if \\"},{"line_number":220,"context_line":"                    hasattr(project, \u0027subtree\u0027) else None"},{"line_number":221,"context_line":"        except exceptions.NotFound:"},{"line_number":222,"context_line":"            msg \u003d (_(\"Tenant ID: %s does not exist.\") % id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a7e1126_8debf612","line":219,"updated":"2015-12-18 15:58:36.000000000","message":"I know this is a nit pick, but once you put one \\ in a file they seem to spread like a disease.\n\nCan we do this as:\n\ngeneric_project.subtree \u003d (\n    project.subtree if hasattr(project, \u0027subtree\u0027) else None)","commit_id":"69c4cc92cdbc5979f52848ac765d678b49fb54fc"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bd8e1dd4234abd000ee30fed6d43970bc9a9c56c","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    class GenericProjectInfo(object):"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        \"\"\"An auxiliary class to provide a generic abstraction for keystone"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        project objects over the API v2.0 and v3."},{"line_number":65,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_5503c073","line":62,"range":{"start_line":62,"start_character":11,"end_line":62,"end_character":75},"updated":"2015-12-23 09:03:22.000000000","message":"A docstring should actually consist of one line summary and optionally a more detailed description.\n\nHow about:\n\n \"\"\"Abstraction layer for Keystone V2 and V3 project objects","commit_id":"2326a6cfdb664a9e3a844008dddeef5e37c0d474"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bd8e1dd4234abd000ee30fed6d43970bc9a9c56c","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                                                subtree_as_ids\u003dsubtree_as_ids)"},{"line_number":218,"context_line":"                generic_project.parent_id \u003d project.parent_id"},{"line_number":219,"context_line":"                generic_project.subtree \u003d ("},{"line_number":220,"context_line":"                    project.subtree if hasattr(project, \u0027subtree\u0027) else None)"},{"line_number":221,"context_line":"        except exceptions.NotFound:"},{"line_number":222,"context_line":"            msg \u003d (_(\"Tenant ID: %s does not exist.\") % id)"},{"line_number":223,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_35d154ce","line":220,"range":{"start_line":220,"start_character":36,"end_line":220,"end_character":66},"updated":"2015-12-23 09:03:22.000000000","message":"Do we need this check? Doesn\u0027t this attribute always exist in v3 Keystone\u0027s project object?","commit_id":"2326a6cfdb664a9e3a844008dddeef5e37c0d474"}],"cinder/tests/unit/api/contrib/test_quotas.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bd8e1dd4234abd000ee30fed6d43970bc9a9c56c","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        self.assertEqual(expected_project.__dict__, project.__dict__)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    @mock.patch(\u0027keystoneclient.client.Client\u0027)"},{"line_number":152,"context_line":"    def test_get_project_keystoneclient_v3(self, ksclient_class):"},{"line_number":153,"context_line":"        context \u003d self.req.environ[\u0027cinder.context\u0027]"},{"line_number":154,"context_line":"        keystoneclient \u003d ksclient_class.return_value"},{"line_number":155,"context_line":"        keystoneclient.version \u003d \u0027v3\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_d5a7b04d","line":152,"range":{"start_line":152,"start_character":8,"end_line":152,"end_character":42},"updated":"2015-12-23 09:03:22.000000000","message":"This test seems redundant to the next one.","commit_id":"2326a6cfdb664a9e3a844008dddeef5e37c0d474"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bd8e1dd4234abd000ee30fed6d43970bc9a9c56c","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        expected_project \u003d self.controller.GenericProjectInfo("},{"line_number":174,"context_line":"            context.project_id, \u0027v3\u0027, \u0027bar\u0027, subtree_dict)"},{"line_number":175,"context_line":"        project \u003d self.controller._get_project(context, context.project_id)"},{"line_number":176,"context_line":"        self.assertEqual(expected_project.__dict__, project.__dict__)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def test_defaults(self):"},{"line_number":179,"context_line":"        self.controller._get_project \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_d52c90ad","line":176,"updated":"2015-12-23 09:03:22.000000000","message":"You should also add a test that will check subtree_as_ids parameter. There should be an assert checking if keystoneclient.projects.get was called with subtree_as_ids\u003dTrue when passing that parameter.","commit_id":"2326a6cfdb664a9e3a844008dddeef5e37c0d474"}]}
