)]}'
{"keystone/tests/core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"df29963446b984a94caac58ce4cf5f33c7541db1","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        with tempfile.NamedTemporaryFile(suffix\u003d\u0027.ini\u0027, delete\u003dFalse) as f:"},{"line_number":174,"context_line":"            f.write(contents)"},{"line_number":175,"context_line":"            self.addCleanup(os.remove, f.name)"},{"line_number":176,"context_line":"            return f.name"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_e1e85fb6","line":175,"updated":"2014-10-23 01:39:21.000000000","message":"this should probably be a fixture.","commit_id":"a4c3849b7a4b3084f7e2abc831a134bc347a00d1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"df29963446b984a94caac58ce4cf5f33c7541db1","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    def xml_paste_config(self, source\u003dNone):"},{"line_number":181,"context_line":"        \"\"\"Generates a paste config that includes XML translation middleware."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        :param: source: path to an existing paste file to modify."},{"line_number":184,"context_line":"        :returns: an absolute path to the generated paste file."},{"line_number":185,"context_line":"        \"\"\""},{"line_number":186,"context_line":"        Generate a file, based on keystone-paste.ini, that includes optional"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_61c54f3b","line":183,"updated":"2014-10-23 01:39:21.000000000","message":"remove : after param.","commit_id":"a4c3849b7a4b3084f7e2abc831a134bc347a00d1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"df29963446b984a94caac58ce4cf5f33c7541db1","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        :param: source: path to an existing paste file to modify."},{"line_number":184,"context_line":"        :returns: an absolute path to the generated paste file."},{"line_number":185,"context_line":"        \"\"\""},{"line_number":186,"context_line":"        Generate a file, based on keystone-paste.ini, that includes optional"},{"line_number":187,"context_line":"        # JSON\u003c--\u003eXML translation middleware."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        # source paste file can be an already customized file"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_21d26700","line":186,"updated":"2014-10-23 01:39:21.000000000","message":"interesting!","commit_id":"a4c3849b7a4b3084f7e2abc831a134bc347a00d1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"df29963446b984a94caac58ce4cf5f33c7541db1","unresolved":false,"context_lines":[{"line_number":205,"context_line":"                \u0027json_body\u0027,"},{"line_number":206,"context_line":"                \u0027ec2_extension\u0027,"},{"line_number":207,"context_line":"                \u0027user_crud_extension\u0027,"},{"line_number":208,"context_line":"                \u0027public_service\u0027)))"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # patch v2 admin API pipeline"},{"line_number":211,"context_line":"        contents \u003d contents.replace("}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_c108bb93","line":208,"updated":"2014-10-23 01:39:21.000000000","message":"this seems excessive... how about just replace \"json_body(.* public_service)\" with \"xml_body_v2 json_body$1\" ? regex must support replacement variables?","commit_id":"a4c3849b7a4b3084f7e2abc831a134bc347a00d1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"df29963446b984a94caac58ce4cf5f33c7541db1","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        with tempfile.NamedTemporaryFile(suffix\u003d\u0027.ini\u0027, delete\u003dFalse) as f:"},{"line_number":264,"context_line":"            f.write(contents)"},{"line_number":265,"context_line":"            self.addCleanup(os.remove, f.name)"},{"line_number":266,"context_line":"            return f.name"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"def skip_if_cache_disabled(*sections):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_c12fdbf4","line":265,"updated":"2014-10-23 01:39:21.000000000","message":"having a cleanup indicates that this would make more sense as a fixture.","commit_id":"a4c3849b7a4b3084f7e2abc831a134bc347a00d1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fd21ea53d749e199bfd572176214469630bf7156","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        os.unlink(pristine)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class ExtendedPasteMixin(object):"},{"line_number":163,"context_line":"    def extend_paste_config(self, extension_name):"},{"line_number":164,"context_line":"        \"\"\"Generates a paste config that includes the specified extension.\"\"\""},{"line_number":165,"context_line":"        with open(dirs.etc(\u0027keystone-paste.ini\u0027), \u0027r\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_4cfe6939","line":162,"updated":"2014-12-04 01:31:42.000000000","message":"should call this ExtendedV3PasteMixin since it only supports V3.\n\nAlso, this could be a fixture rather than a mixin and it would be more flexible (could use more than one).","commit_id":"2157d4a9ad1ee7d0a1b2e9eb73fda0c5a1286b4b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fd21ea53d749e199bfd572176214469630bf7156","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            return f.name"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class XMLPasteMixin(object):"},{"line_number":179,"context_line":"    def xml_paste_config(self, source\u003dNone):"},{"line_number":180,"context_line":"        \"\"\"Generates a paste config that includes XML translation middleware."},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_2cb11d8f","line":178,"updated":"2014-12-04 01:31:42.000000000","message":"This could be a fixture rather than a mixin.","commit_id":"2157d4a9ad1ee7d0a1b2e9eb73fda0c5a1286b4b"}]}
