)]}'
{"manila/api/openstack/api_version_request.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d643c277b8df271f45d40629508e10175f2802ab","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        if isinstance(max_version, str):"},{"line_number":169,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if not min_version and not max_version:"},{"line_number":172,"context_line":"            return True"},{"line_number":173,"context_line":"        elif ((min_version and max_version) and"},{"line_number":174,"context_line":"              max_version.is_null() and min_version.is_null()):"},{"line_number":175,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_6bd486bc","line":172,"range":{"start_line":171,"start_character":8,"end_line":172,"end_character":23},"updated":"2016-03-03 01:10:40.000000000","message":"This case is not covered by a unit test..","commit_id":"c86529ad38f23181e12882b5d48efad1a35e3f37"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4730957897628e9336afe5f21dc5f642218a86aa","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        if not self.experimental and experimental:"},{"line_number":164,"context_line":"            return False"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        if isinstance(min_version, str):"},{"line_number":167,"context_line":"            min_version \u003d APIVersionRequest(version_string\u003dmin_version)"},{"line_number":168,"context_line":"        if isinstance(max_version, str):"},{"line_number":169,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_1210bf00","line":166,"range":{"start_line":166,"start_character":35,"end_line":166,"end_character":38},"updated":"2016-03-14 15:03:55.000000000","message":"It is py2 specific. py2/3 compatible thing should be used:\n\n\"\"\"\n\nif isinstance(min_version, six.string_types):\n\n\"\"\"\n\nSame for all other such occurrences.","commit_id":"7738bb6646de904b98ddd4bac753ba194761d91e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4730957897628e9336afe5f21dc5f642218a86aa","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        if isinstance(max_version, str):"},{"line_number":169,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if not min_version and not max_version:"},{"line_number":172,"context_line":"            return True"},{"line_number":173,"context_line":"        elif ((min_version and max_version) and"},{"line_number":174,"context_line":"              max_version.is_null() and min_version.is_null()):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_72edc3ee","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":46},"updated":"2016-03-14 15:03:55.000000000","message":"if not (min_version or max_version):","commit_id":"7738bb6646de904b98ddd4bac753ba194761d91e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4730957897628e9336afe5f21dc5f642218a86aa","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if not min_version and not max_version:"},{"line_number":172,"context_line":"            return True"},{"line_number":173,"context_line":"        elif ((min_version and max_version) and"},{"line_number":174,"context_line":"              max_version.is_null() and min_version.is_null()):"},{"line_number":175,"context_line":"            return True"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_32917b53","line":173,"range":{"start_line":173,"start_character":14,"end_line":173,"end_character":43},"updated":"2016-03-14 15:03:55.000000000","message":"Redundant parenthesis","commit_id":"7738bb6646de904b98ddd4bac753ba194761d91e"}],"manila/tests/api/test_versions.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d643c277b8df271f45d40629508e10175f2802ab","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        self.assertEqual(404, response.status_int)"},{"line_number":225,"context_line":"        self.assertTrue(response.headers.get(experimental_header_name))"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    @ddt.data([\u00272.5\u0027, 200], [\u00272.55\u0027, 404])"},{"line_number":228,"context_line":"    @ddt.unpack"},{"line_number":229,"context_line":"    def test_req_version_matches(self, version, HTTP_ret):"},{"line_number":230,"context_line":"        version_request \u003d api_version_request.APIVersionRequest(version)"},{"line_number":231,"context_line":"        self.mock_object(api_version_request,"},{"line_number":232,"context_line":"                         \u0027max_api_version\u0027,"},{"line_number":233,"context_line":"                         mock.Mock(return_value\u003dversion_request))"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        class Controller(wsgi.Controller):"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"            @wsgi.Controller.api_version(\u00272.0\u0027, \u00272.6\u0027)"},{"line_number":238,"context_line":"            def index(self, req):"},{"line_number":239,"context_line":"                return \u0027off\u0027"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/tests\u0027, base_url\u003d\u0027http://localhost/v3\u0027)"},{"line_number":242,"context_line":"        req.headers \u003d {version_header_name: version}"},{"line_number":243,"context_line":"        app \u003d fakes.TestRouter(Controller())"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        response \u003d req.get_response(app)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        if HTTP_ret \u003d\u003d 200:"},{"line_number":248,"context_line":"            self.assertEqual(b\u0027off\u0027, response.body)"},{"line_number":249,"context_line":"        elif HTTP_ret \u003d\u003d 404:"},{"line_number":250,"context_line":"            self.assertNotEqual(b\u0027off\u0027, response.body)"},{"line_number":251,"context_line":"        self.assertEqual(HTTP_ret, response.status_int)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    @ddt.data([\u00272.5\u0027, \u0027older\u0027], [\u00272.37\u0027, \u0027newer\u0027])"},{"line_number":254,"context_line":"    @ddt.unpack"},{"line_number":255,"context_line":"    def test_req_version_matches_with_if(self, version, ret_val):"},{"line_number":256,"context_line":"        version_request \u003d api_version_request.APIVersionRequest(version)"},{"line_number":257,"context_line":"        self.mock_object(api_version_request,"},{"line_number":258,"context_line":"                         \u0027max_api_version\u0027,"},{"line_number":259,"context_line":"                         mock.Mock(return_value\u003dversion_request))"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        class Controller(wsgi.Controller):"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"            def index(self, req):"},{"line_number":264,"context_line":"                req_version \u003d req.api_version_request"},{"line_number":265,"context_line":"                if req_version.matches(\u00272.1\u0027, \u00272.8\u0027):"},{"line_number":266,"context_line":"                    return \u0027older\u0027"},{"line_number":267,"context_line":"                if req_version.matches(\u00272.9\u0027, \u00272.88\u0027):"},{"line_number":268,"context_line":"                    return \u0027newer\u0027"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/tests\u0027, base_url\u003d\u0027http://localhost/v3\u0027)"},{"line_number":271,"context_line":"        req.headers \u003d {version_header_name: version}"},{"line_number":272,"context_line":"        app \u003d fakes.TestRouter(Controller())"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        response \u003d req.get_response(app)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        resp \u003d encodeutils.safe_decode(response.body, incoming\u003d\u0027utf-8\u0027)"},{"line_number":277,"context_line":"        self.assertEqual(ret_val, resp)"},{"line_number":278,"context_line":"        self.assertEqual(200, response.status_int)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    @ddt.data([\u00272.5\u0027, \u0027older\u0027], [\u00272.37\u0027, \u0027newer\u0027])"},{"line_number":281,"context_line":"    @ddt.unpack"},{"line_number":282,"context_line":"    def test_req_version_matches_with_None(self, version, ret_val):"},{"line_number":283,"context_line":"        version_request \u003d api_version_request.APIVersionRequest(version)"},{"line_number":284,"context_line":"        self.mock_object(api_version_request,"},{"line_number":285,"context_line":"                         \u0027max_api_version\u0027,"},{"line_number":286,"context_line":"                         mock.Mock(return_value\u003dversion_request))"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        class Controller(wsgi.Controller):"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            def index(self, req):"},{"line_number":291,"context_line":"                req_version \u003d req.api_version_request"},{"line_number":292,"context_line":"                if req_version.matches(None, \u00272.8\u0027):"},{"line_number":293,"context_line":"                    return \u0027older\u0027"},{"line_number":294,"context_line":"                if req_version.matches(\u00272.9\u0027, None):"},{"line_number":295,"context_line":"                    return \u0027newer\u0027"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/tests\u0027, base_url\u003d\u0027http://localhost/v3\u0027)"},{"line_number":298,"context_line":"        req.headers \u003d {version_header_name: version}"},{"line_number":299,"context_line":"        app \u003d fakes.TestRouter(Controller())"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        response \u003d req.get_response(app)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        resp \u003d encodeutils.safe_decode(response.body, incoming\u003d\u0027utf-8\u0027)"},{"line_number":304,"context_line":"        self.assertEqual(ret_val, resp)"},{"line_number":305,"context_line":"        self.assertEqual(200, response.status_int)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_8b33d261","line":305,"range":{"start_line":226,"start_character":0,"end_line":305,"end_character":50},"updated":"2016-03-03 01:10:40.000000000","message":"These unit tests belong to the wrong class here.. Could you please move them to: VersionsControllerTestCase?","commit_id":"c86529ad38f23181e12882b5d48efad1a35e3f37"}]}
