)]}'
{"keystone/common/sql/core.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9858e1694c511b21905b5c1f8f2d4f943b38431c","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def initialize_decorator(init):"},{"line_number":55,"context_line":"    def initialize(self, *args, **kwargs):"},{"line_number":56,"context_line":"        cls_ \u003d type(self)"},{"line_number":57,"context_line":"        for k, v in kwargs.items():"},{"line_number":58,"context_line":"            if hasattr(cls_, k):"},{"line_number":59,"context_line":"                attr \u003d getattr(cls_, k)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Fr9M%3D","line":56,"updated":"2013-01-09 16:05:53.000000000","message":"cls_ -\u003e cls?","commit_id":"f719295104003517cd206985964a95a801a3970f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9858e1694c511b21905b5c1f8f2d4f943b38431c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        for k, v in kwargs.items():"},{"line_number":58,"context_line":"            if hasattr(cls_, k):"},{"line_number":59,"context_line":"                attr \u003d getattr(cls_, k)"},{"line_number":60,"context_line":"                if isinstance(attr, InstrumentedAttribute):     #Column"},{"line_number":61,"context_line":"                    column \u003d attr.property.columns[0]"},{"line_number":62,"context_line":"                    if isinstance(column.type, String):         #String type"},{"line_number":63,"context_line":"                        if column.type.length and \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Fr9E%3D","line":60,"updated":"2013-01-09 16:05:53.000000000","message":"not sure what this comment is referring to?","commit_id":"f719295104003517cd206985964a95a801a3970f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9858e1694c511b21905b5c1f8f2d4f943b38431c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                attr \u003d getattr(cls_, k)"},{"line_number":60,"context_line":"                if isinstance(attr, InstrumentedAttribute):     #Column"},{"line_number":61,"context_line":"                    column \u003d attr.property.columns[0]"},{"line_number":62,"context_line":"                    if isinstance(column.type, String):         #String type"},{"line_number":63,"context_line":"                        if column.type.length and \\"},{"line_number":64,"context_line":"                            column.type.length \u003c len(str(v)):"},{"line_number":65,"context_line":"                            #if signing.token_format \u003d\u003d \u0027PKI\u0027, the id will store"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Fr9A%3D","line":62,"updated":"2013-01-09 16:05:53.000000000","message":"comment is redundant with the code","commit_id":"f719295104003517cd206985964a95a801a3970f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"865838f698eb458ca5962179eb11ea8724fe25ca","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Text \u003d sql.Text"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def initialize_decorator(init):"},{"line_number":55,"context_line":"    def initialize(self, *args, **kwargs):"},{"line_number":56,"context_line":"        cls \u003d type(self)"},{"line_number":57,"context_line":"        for k, v in kwargs.items():"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FopE%3D","line":54,"updated":"2013-01-11 20:01:07.000000000","message":"this definitely needs a docstr explaining what it does (it\u0027s a lot of code to shuffle through, and a one line summary would be extremely beneficial)","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"806e10ff729d836b28ed87c2220e14af6d2a10c5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Text \u003d sql.Text"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def initialize_decorator(init):"},{"line_number":55,"context_line":"    def initialize(self, *args, **kwargs):"},{"line_number":56,"context_line":"        cls \u003d type(self)"},{"line_number":57,"context_line":"        for k, v in kwargs.items():"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fm94%3D","line":54,"in_reply_to":"AAAAM3%2F%2FopE%3D","updated":"2013-01-14 03:22:04.000000000","message":"Done","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"}],"keystone/exception.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9858e1694c511b21905b5c1f8f2d4f943b38431c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    code \u003d 400"},{"line_number":73,"context_line":"    title \u003d \u0027Bad Request\u0027"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class StringLengthExceed(ValidationError):"},{"line_number":76,"context_line":"    \"\"\"the length of string \"%(string)s\" exceed the limit of column"},{"line_number":77,"context_line":"    %(type)s(CHAR(%(length)d)).\"\"\""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Fr%2Fs%3D","line":75,"updated":"2013-01-09 16:05:53.000000000","message":"Exceeded","commit_id":"f719295104003517cd206985964a95a801a3970f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9858e1694c511b21905b5c1f8f2d4f943b38431c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    title \u003d \u0027Bad Request\u0027"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class StringLengthExceed(ValidationError):"},{"line_number":76,"context_line":"    \"\"\"the length of string \"%(string)s\" exceed the limit of column"},{"line_number":77,"context_line":"    %(type)s(CHAR(%(length)d)).\"\"\""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Fr%2Fo%3D","line":76,"updated":"2013-01-09 16:05:53.000000000","message":"the -\u003e The","commit_id":"f719295104003517cd206985964a95a801a3970f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a8ba9d8659521c1c7ec2fc154992407a581ecbf9","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    title \u003d \u0027Bad Request\u0027"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class StringLengthExceed(ValidationError):"},{"line_number":77,"context_line":"    \"\"\"The length of string \"%(string)s\" exceeded the limit of column"},{"line_number":78,"context_line":"    %(type)s(CHAR(%(length)d)).\"\"\""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fmao%3D","line":76,"updated":"2013-01-14 16:16:45.000000000","message":"for consistency with the other exception classes, rename this to:\n\n  StringLengthExceeded","commit_id":"80cb3e390671f76d808da21c30945667251fa430"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"767542ef693ee099b156f9d33beedb13507ff978","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    title \u003d \u0027Bad Request\u0027"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class StringLengthExceed(ValidationError):"},{"line_number":77,"context_line":"    \"\"\"The length of string \"%(string)s\" exceeded the limit of column"},{"line_number":78,"context_line":"    %(type)s(CHAR(%(length)d)).\"\"\""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FlZ0%3D","line":76,"in_reply_to":"AAAAM3%2F%2Fmao%3D","updated":"2013-01-15 00:46:25.000000000","message":"Done","commit_id":"80cb3e390671f76d808da21c30945667251fa430"}],"tests/test_backend.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a8ba9d8659521c1c7ec2fc154992407a581ecbf9","unresolved":false,"context_lines":[{"line_number":943,"context_line":"        }"},{"line_number":944,"context_line":"        self.catalog_api.create_service(service[\u0027id\u0027], service.copy())"},{"line_number":945,"context_line":""},{"line_number":946,"context_line":"        malformed_url \u003d \"http://192.168.1.104:$(compute_port)s/v2/$(tenant)s\""},{"line_number":947,"context_line":"        endpoint \u003d {"},{"line_number":948,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":949,"context_line":"            \u0027region\u0027: \"0\" * 255,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fmaw%3D","line":946,"updated":"2013-01-14 16:16:45.000000000","message":"remove","commit_id":"80cb3e390671f76d808da21c30945667251fa430"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"767542ef693ee099b156f9d33beedb13507ff978","unresolved":false,"context_lines":[{"line_number":943,"context_line":"        }"},{"line_number":944,"context_line":"        self.catalog_api.create_service(service[\u0027id\u0027], service.copy())"},{"line_number":945,"context_line":""},{"line_number":946,"context_line":"        malformed_url \u003d \"http://192.168.1.104:$(compute_port)s/v2/$(tenant)s\""},{"line_number":947,"context_line":"        endpoint \u003d {"},{"line_number":948,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":949,"context_line":"            \u0027region\u0027: \"0\" * 255,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FlaI%3D","line":946,"in_reply_to":"AAAAM3%2F%2Fmaw%3D","updated":"2013-01-15 00:46:25.000000000","message":"Done","commit_id":"80cb3e390671f76d808da21c30945667251fa430"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a8ba9d8659521c1c7ec2fc154992407a581ecbf9","unresolved":false,"context_lines":[{"line_number":949,"context_line":"            \u0027region\u0027: \"0\" * 255,"},{"line_number":950,"context_line":"            \u0027service_id\u0027: service[\u0027id\u0027],"},{"line_number":951,"context_line":"            \u0027interface\u0027: \u0027public\u0027,"},{"line_number":952,"context_line":"            \u0027url\u0027: malformed_url,"},{"line_number":953,"context_line":"        }"},{"line_number":954,"context_line":"        self.catalog_api.create_endpoint(endpoint[\u0027id\u0027], endpoint.copy())"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fma0%3D","line":952,"updated":"2013-01-14 16:16:45.000000000","message":"the url doesn\u0027t matter here, so\n\n  \u0027url\u0027: uuid.uuid4().hex","commit_id":"80cb3e390671f76d808da21c30945667251fa430"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"767542ef693ee099b156f9d33beedb13507ff978","unresolved":false,"context_lines":[{"line_number":949,"context_line":"            \u0027region\u0027: \"0\" * 255,"},{"line_number":950,"context_line":"            \u0027service_id\u0027: service[\u0027id\u0027],"},{"line_number":951,"context_line":"            \u0027interface\u0027: \u0027public\u0027,"},{"line_number":952,"context_line":"            \u0027url\u0027: malformed_url,"},{"line_number":953,"context_line":"        }"},{"line_number":954,"context_line":"        self.catalog_api.create_endpoint(endpoint[\u0027id\u0027], endpoint.copy())"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FlaE%3D","line":952,"in_reply_to":"AAAAM3%2F%2Fma0%3D","updated":"2013-01-15 00:46:25.000000000","message":"Done","commit_id":"80cb3e390671f76d808da21c30945667251fa430"}],"tests/test_backend_sql.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9858e1694c511b21905b5c1f8f2d4f943b38431c","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.assertIsNone(catalog_endpoint.get(\u0027internalURL\u0027))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"class SqlEndpoint(SqlTests, test_backend.CatalogTests):"},{"line_number":269,"context_line":"    def test_create_endpoint(self):"},{"line_number":270,"context_line":"        service \u003d {"},{"line_number":271,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Fr%2Bg%3D","line":268,"updated":"2013-01-09 16:05:53.000000000","message":"this class can be merged with the class above, as Catalog is meant to include services + endpoints","commit_id":"f719295104003517cd206985964a95a801a3970f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"865838f698eb458ca5962179eb11ea8724fe25ca","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        self.assertIsNone(catalog_endpoint.get(\u0027adminURL\u0027))"},{"line_number":265,"context_line":"        self.assertIsNone(catalog_endpoint.get(\u0027internalURL\u0027))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    def test_create_endpoint(self):"},{"line_number":268,"context_line":"        service \u003d {"},{"line_number":269,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":270,"context_line":"            \u0027type\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fook%3D","line":267,"updated":"2013-01-11 20:01:07.000000000","message":"i *think* this belongs in test_backend.CatalogTests (it\u0027s not specific to SQL)","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"806e10ff729d836b28ed87c2220e14af6d2a10c5","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        self.assertIsNone(catalog_endpoint.get(\u0027adminURL\u0027))"},{"line_number":265,"context_line":"        self.assertIsNone(catalog_endpoint.get(\u0027internalURL\u0027))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    def test_create_endpoint(self):"},{"line_number":268,"context_line":"        service \u003d {"},{"line_number":269,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":270,"context_line":"            \u0027type\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fm%2BA%3D","line":267,"in_reply_to":"AAAAM3%2F%2Fook%3D","updated":"2013-01-14 03:22:04.000000000","message":"Done","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"d85c58ba3b2bb9ed4a8a4c26ccb888a3b5a74790","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        self.assertIsNone(catalog_endpoint.get(\u0027adminURL\u0027))"},{"line_number":265,"context_line":"        self.assertIsNone(catalog_endpoint.get(\u0027internalURL\u0027))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    def test_create_endpoint(self):"},{"line_number":268,"context_line":"        service \u003d {"},{"line_number":269,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":270,"context_line":"            \u0027type\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FnKg%3D","line":267,"in_reply_to":"AAAAM3%2F%2Fook%3D","updated":"2013-01-13 21:47:58.000000000","message":"agreed","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"865838f698eb458ca5962179eb11ea8724fe25ca","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        with self.assertRaises(exception.MalformedEndpoint):"},{"line_number":287,"context_line":"            self.catalog_api.get_catalog(\u0027fake-user\u0027, \u0027fake-tenant\u0027)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def test_create_endpoint_400(self):"},{"line_number":290,"context_line":"        service \u003d {"},{"line_number":291,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":292,"context_line":"            \u0027type\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fooc%3D","line":289,"updated":"2013-01-11 20:01:07.000000000","message":"this one definitely belongs here","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"806e10ff729d836b28ed87c2220e14af6d2a10c5","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        with self.assertRaises(exception.MalformedEndpoint):"},{"line_number":287,"context_line":"            self.catalog_api.get_catalog(\u0027fake-user\u0027, \u0027fake-tenant\u0027)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def test_create_endpoint_400(self):"},{"line_number":290,"context_line":"        service \u003d {"},{"line_number":291,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":292,"context_line":"            \u0027type\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fm98%3D","line":289,"in_reply_to":"AAAAM3%2F%2Fooc%3D","updated":"2013-01-14 03:22:04.000000000","message":"Done","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a8ba9d8659521c1c7ec2fc154992407a581ecbf9","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        }"},{"line_number":274,"context_line":"        self.catalog_api.create_service(service[\u0027id\u0027], service.copy())"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        malformed_url \u003d \"http://192.168.1.104:$(compute_port)s/v2/$(tenant)s\""},{"line_number":277,"context_line":"        endpoint \u003d {"},{"line_number":278,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":279,"context_line":"            \u0027region\u0027: \"0\" * 256,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fma4%3D","line":276,"updated":"2013-01-14 16:16:45.000000000","message":"remove; you\u0027re not testing for malformed endpoints","commit_id":"80cb3e390671f76d808da21c30945667251fa430"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"767542ef693ee099b156f9d33beedb13507ff978","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        }"},{"line_number":274,"context_line":"        self.catalog_api.create_service(service[\u0027id\u0027], service.copy())"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        malformed_url \u003d \"http://192.168.1.104:$(compute_port)s/v2/$(tenant)s\""},{"line_number":277,"context_line":"        endpoint \u003d {"},{"line_number":278,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":279,"context_line":"            \u0027region\u0027: \"0\" * 256,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FlZ8%3D","line":276,"in_reply_to":"AAAAM3%2F%2Fma4%3D","updated":"2013-01-15 00:46:25.000000000","message":"Done","commit_id":"80cb3e390671f76d808da21c30945667251fa430"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a8ba9d8659521c1c7ec2fc154992407a581ecbf9","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            \u0027region\u0027: \"0\" * 256,"},{"line_number":280,"context_line":"            \u0027service_id\u0027: service[\u0027id\u0027],"},{"line_number":281,"context_line":"            \u0027interface\u0027: \u0027public\u0027,"},{"line_number":282,"context_line":"            \u0027url\u0027: malformed_url,"},{"line_number":283,"context_line":"        }"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        with self.assertRaises(exception.StringLengthExceed):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fmas%3D","line":282,"updated":"2013-01-14 16:16:45.000000000","message":"the url value doesn\u0027t matter here, so:\n\n  \u0027url\u0027: uuid.uuid4().hex","commit_id":"80cb3e390671f76d808da21c30945667251fa430"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"767542ef693ee099b156f9d33beedb13507ff978","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            \u0027region\u0027: \"0\" * 256,"},{"line_number":280,"context_line":"            \u0027service_id\u0027: service[\u0027id\u0027],"},{"line_number":281,"context_line":"            \u0027interface\u0027: \u0027public\u0027,"},{"line_number":282,"context_line":"            \u0027url\u0027: malformed_url,"},{"line_number":283,"context_line":"        }"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        with self.assertRaises(exception.StringLengthExceed):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FlZ4%3D","line":282,"in_reply_to":"AAAAM3%2F%2Fmas%3D","updated":"2013-01-15 00:46:25.000000000","message":"Done","commit_id":"80cb3e390671f76d808da21c30945667251fa430"}],"tests/test_v3_catalog.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9858e1694c511b21905b5c1f8f2d4f943b38431c","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def test_create_endpoint_400(self):"},{"line_number":123,"context_line":"        \"\"\"POST /endpoints\"\"\""},{"line_number":124,"context_line":"        import exceptions"},{"line_number":125,"context_line":"        ref \u003d self.new_endpoint_ref(service_id\u003dself.service_id)"},{"line_number":126,"context_line":"        ref[\"region\"] \u003d \"0\" * 256"},{"line_number":127,"context_line":"        self.assertRaises(exceptions.AssertionError, self.post,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Fr98%3D","line":124,"updated":"2013-01-09 16:05:53.000000000","message":"instead of checking for an assertion error, add expected_status\u003d400 to the self.post() call","commit_id":"f719295104003517cd206985964a95a801a3970f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"865838f698eb458ca5962179eb11ea8724fe25ca","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        self.assertValidEndpointResponse(r, ref)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def assertValidErrorResponse(self, response):"},{"line_number":123,"context_line":"        self.assertTrue(response.status in [400])"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def test_create_endpoint_400(self):"},{"line_number":126,"context_line":"        \"\"\"POST /endpoints\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FonM%3D","line":123,"updated":"2013-01-11 20:01:07.000000000","message":"This overwrites test_content_types.assertValidErrorResponse and is redundant with expected_status\u003d400 below (which uses assertResponseStatus anyway). I believe this whole def can/should be removed.","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"d698880f1ae416c69574d3e46c8c72d1b496161d","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        self.assertValidEndpointResponse(r, ref)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def assertValidErrorResponse(self, response):"},{"line_number":123,"context_line":"        self.assertTrue(response.status in [400])"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def test_create_endpoint_400(self):"},{"line_number":126,"context_line":"        \"\"\"POST /endpoints\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fm%2Bc%3D","line":123,"in_reply_to":"AAAAM3%2F%2FonM%3D","updated":"2013-01-14 03:20:11.000000000","message":"It will raise a \u0027AttributeError\u0027 if do not define assertValidErrorResponse.","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"865838f698eb458ca5962179eb11ea8724fe25ca","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def test_create_endpoint_400(self):"},{"line_number":126,"context_line":"        \"\"\"POST /endpoints\"\"\""},{"line_number":127,"context_line":"        import exceptions"},{"line_number":128,"context_line":"        ref \u003d self.new_endpoint_ref(service_id\u003dself.service_id)"},{"line_number":129,"context_line":"        ref[\"region\"] \u003d \"0\" * 256"},{"line_number":130,"context_line":"        self.post(\u0027/endpoints\u0027, body\u003d{\u0027endpoint\u0027: ref}, expected_status\u003d400)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FonE%3D","line":127,"updated":"2013-01-11 20:01:07.000000000","message":"remove unused import","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"},{"author":{"_account_id":6565,"name":"Tony NIU","email":"niuwl586@gmail.com","username":"niuwl586-v"},"change_message_id":"806e10ff729d836b28ed87c2220e14af6d2a10c5","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def test_create_endpoint_400(self):"},{"line_number":126,"context_line":"        \"\"\"POST /endpoints\"\"\""},{"line_number":127,"context_line":"        import exceptions"},{"line_number":128,"context_line":"        ref \u003d self.new_endpoint_ref(service_id\u003dself.service_id)"},{"line_number":129,"context_line":"        ref[\"region\"] \u003d \"0\" * 256"},{"line_number":130,"context_line":"        self.post(\u0027/endpoints\u0027, body\u003d{\u0027endpoint\u0027: ref}, expected_status\u003d400)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fm90%3D","line":127,"in_reply_to":"AAAAM3%2F%2FonE%3D","updated":"2013-01-14 03:22:04.000000000","message":"Done","commit_id":"08521b0996400a35407a8d78c677efac00141d0c"}]}
