)]}'
{"marconi/tests/functional/base.py":[{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"279d0c41b17a5b6449f964899bfc19c5473788f3","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        if not self.cfg.run_tests:"},{"line_number":45,"context_line":"            self.skipTest(\"Functional tests disabled\")"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        # NOTE(flaper87): Use running instances."},{"line_number":48,"context_line":"        if (self.cfg.marconi.run_server and not"},{"line_number":49,"context_line":"                self.server):"},{"line_number":50,"context_line":"            self.server \u003d self.server_class()"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAASn%2F%2FWTo%3D","line":47,"updated":"2013-09-05 22:00:36.000000000","message":"In what cases will there be a running server already?","commit_id":"7c8af9492cc75aec0f1adc23ba584308090ea38a"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"af3e6ec203cfe83f0d11785241d80d88bd7232fc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        if not self.cfg.run_tests:"},{"line_number":45,"context_line":"            self.skipTest(\"Functional tests disabled\")"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        # NOTE(flaper87): Use running instances."},{"line_number":48,"context_line":"        if (self.cfg.marconi.run_server and not"},{"line_number":49,"context_line":"                self.server):"},{"line_number":50,"context_line":"            self.server \u003d self.server_class()"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAASn%2F%2FVAg%3D","line":47,"in_reply_to":"AAAASn%2F%2FWTo%3D","updated":"2013-09-06 09:05:39.000000000","message":"As it is now, there will be 1 server running per test case. This still doesn\u0027t support parallel runs within the same box since they\u0027d be all trying to run marconi-server on the same port. I\u0027ll work on a random port pick later.\n\nTo make it clearer.\n\nfunctiona.test_messages:TestMessages will use 1 server for all the tests it runs. The server will be setUp when the first test is run and stopped when the test case is teared down (tearDownClass).","commit_id":"7c8af9492cc75aec0f1adc23ba584308090ea38a"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"279d0c41b17a5b6449f964899bfc19c5473788f3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    __metaclass__ \u003d abc.ABCMeta"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    servers \u003d {}"},{"line_number":91,"context_line":"    name \u003d \"marconi-functional-server\""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def __init__(self):"},{"line_number":94,"context_line":"        self.process \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAASn%2F%2FWhY%3D","line":91,"updated":"2013-09-05 22:00:36.000000000","message":"maybe include \"test\" somewhere in the name?","commit_id":"7c8af9492cc75aec0f1adc23ba584308090ea38a"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"af3e6ec203cfe83f0d11785241d80d88bd7232fc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    __metaclass__ \u003d abc.ABCMeta"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    servers \u003d {}"},{"line_number":91,"context_line":"    name \u003d \"marconi-functional-server\""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def __init__(self):"},{"line_number":94,"context_line":"        self.process \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAASn%2F%2FVAs%3D","line":91,"in_reply_to":"AAAASn%2F%2FWhY%3D","updated":"2013-09-06 09:05:39.000000000","message":"Done","commit_id":"7c8af9492cc75aec0f1adc23ba584308090ea38a"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"279d0c41b17a5b6449f964899bfc19c5473788f3","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # TODO(flaper87): Re-use running instances."},{"line_number":118,"context_line":"        target \u003d self.get_target(config_file)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        if not callable(target):"},{"line_number":121,"context_line":"            raise RuntimeError(\"Target not callable\")"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.process \u003d multiprocessing.Process(target\u003dtarget,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAASn%2F%2FWhs%3D","line":120,"updated":"2013-09-05 22:00:36.000000000","message":"This will succeed for class objects that do not define __call__ - is that going to cause a problem?","commit_id":"7c8af9492cc75aec0f1adc23ba584308090ea38a"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"af3e6ec203cfe83f0d11785241d80d88bd7232fc","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # TODO(flaper87): Re-use running instances."},{"line_number":118,"context_line":"        target \u003d self.get_target(config_file)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        if not callable(target):"},{"line_number":121,"context_line":"            raise RuntimeError(\"Target not callable\")"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.process \u003d multiprocessing.Process(target\u003dtarget,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAASn%2F%2FVAM%3D","line":120,"in_reply_to":"AAAASn%2F%2FWhs%3D","updated":"2013-09-06 09:05:39.000000000","message":"Don\u0027t think so, it just expects a callable target to pass to multiprocessing.Process, for example, MarconiServer returns `bootsrap.run` (line 150).","commit_id":"7c8af9492cc75aec0f1adc23ba584308090ea38a"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"279d0c41b17a5b6449f964899bfc19c5473788f3","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"class MarconiServer(Server):"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    name \u003d \"marconi-test-server\""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def get_target(self, config_file):"},{"line_number":149,"context_line":"        server \u003d bootstrap.Bootstrap(config_file)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAASn%2F%2FWhM%3D","line":146,"updated":"2013-09-05 22:00:36.000000000","message":"Maybe rename to \"marconi-wsgiref-server\" ?","commit_id":"7c8af9492cc75aec0f1adc23ba584308090ea38a"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"af3e6ec203cfe83f0d11785241d80d88bd7232fc","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"class MarconiServer(Server):"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    name \u003d \"marconi-test-server\""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def get_target(self, config_file):"},{"line_number":149,"context_line":"        server \u003d bootstrap.Bootstrap(config_file)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAASn%2F%2FVAI%3D","line":146,"in_reply_to":"AAAASn%2F%2FWhM%3D","updated":"2013-09-06 09:05:39.000000000","message":"Done","commit_id":"7c8af9492cc75aec0f1adc23ba584308090ea38a"},{"author":{"_account_id":6944,"name":"Allele Dev","email":"cpp.cabrera@gmail.com","username":"cpp-cabrera"},"change_message_id":"64fc143418370d48e2f0b08c8412b0c50c34420e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                        msg\u003d\u0027More Messages returned than allowed\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"class Server(object):"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    __metaclass__ \u003d abc.ABCMeta"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAASn%2F%2FLjI%3D","line":86,"updated":"2013-09-10 14:42:42.000000000","message":"Consider using (http://pythonhosted.org/six/#six.add_metaclass) to make this compatible across py2/3.","commit_id":"226e813db8092511aafe813c814e794aa938042e"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"1d59433d25b66c758bd4ade4d833a66aef7a0ad5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                        msg\u003d\u0027More Messages returned than allowed\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"class Server(object):"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    __metaclass__ \u003d abc.ABCMeta"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAASn%2F%2FKbM%3D","line":86,"in_reply_to":"AAAASn%2F%2FLSo%3D","updated":"2013-09-10 20:19:07.000000000","message":"Agreed, do it in a separate blanket patch.","commit_id":"226e813db8092511aafe813c814e794aa938042e"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"eac5294157fbbe369041499154dc8779f46f6c2a","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                        msg\u003d\u0027More Messages returned than allowed\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"class Server(object):"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    __metaclass__ \u003d abc.ABCMeta"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAASn%2F%2FLSo%3D","line":86,"in_reply_to":"AAAASn%2F%2FLjI%3D","updated":"2013-09-10 15:46:35.000000000","message":"Lets replace all metaclasses in Marconi in a separate patch. thoughts?","commit_id":"226e813db8092511aafe813c814e794aa938042e"},{"author":{"_account_id":6944,"name":"Allele Dev","email":"cpp.cabrera@gmail.com","username":"cpp-cabrera"},"change_message_id":"64fc143418370d48e2f0b08c8412b0c50c34420e","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        # NOTE(flaper87): Give it a second"},{"line_number":129,"context_line":"        # to boot."},{"line_number":130,"context_line":"        self.process.join(1)"},{"line_number":131,"context_line":"        return self.process"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def stop(self):"},{"line_number":134,"context_line":"        \"\"\"Terminates a process"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAASn%2F%2FLjE%3D","line":131,"updated":"2013-09-10 14:42:42.000000000","message":"Good use of multiprocessing here. +1.","commit_id":"226e813db8092511aafe813c814e794aa938042e"}],"marconi/tests/functional/helpers.py":[{"author":{"_account_id":6944,"name":"Allele Dev","email":"cpp.cabrera@gmail.com","username":"cpp-cabrera"},"change_message_id":"64fc143418370d48e2f0b08c8412b0c50c34420e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import string"},{"line_number":19,"context_line":"import uuid"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from marconi.tests.functional import http"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def get_keystone_token(conf):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAASn%2F%2FLis%3D","line":21,"updated":"2013-09-10 14:42:42.000000000","message":"Nice catch on style. :)","commit_id":"226e813db8092511aafe813c814e794aa938042e"}],"tests/storage/base.py":[{"author":{"_account_id":6944,"name":"Allele Dev","email":"cpp.cabrera@gmail.com","username":"cpp-cabrera"},"change_message_id":"64fc143418370d48e2f0b08c8412b0c50c34420e","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"            self.assertIn(\u0027id\u0027, message_stat)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        timeutils.clear_time_override()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        self.assertThat(oldest[\u0027created\u0027],"},{"line_number":150,"context_line":"                        matchers.LessThan(newest[\u0027created\u0027]))"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAASn%2F%2FLiQ%3D","line":147,"updated":"2013-09-10 14:42:42.000000000","message":"This totally needs to be made into a context manager. :P\n\nwith timeutils.advance(seconds\u003d60):\n    # do thing\n\nBut that\u0027s a problem for a later time, for another project.","commit_id":"226e813db8092511aafe813c814e794aa938042e"}]}
