)]}'
{"mistral/config.py":[{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"d88026594ac8d75a568ced5680081e73f4c9f421","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"cron_trigger_opts \u003d ["},{"line_number":223,"context_line":"    cfg.BoolOpt("},{"line_number":224,"context_line":"        \u0027disabled\u0027,"},{"line_number":225,"context_line":"        default\u003dFalse,"},{"line_number":226,"context_line":"        help\u003d("},{"line_number":227,"context_line":"            \u0027If this value is set to True then the subsystem of cron triggers\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f4e5783_66096794","line":224,"updated":"2017-10-17 07:52:30.000000000","message":"Soft: It is better to use the positive \"enabled\" with default of True.\nUsing negative config name is a bit confusing.","commit_id":"40e25d235e60e13c91149819148a1d8734cd65a2"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"4b361822adbdc5339cf3374e5d1c11cf92d369e3","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"cron_trigger_opts \u003d ["},{"line_number":223,"context_line":"    cfg.BoolOpt("},{"line_number":224,"context_line":"        \u0027disabled\u0027,"},{"line_number":225,"context_line":"        default\u003dFalse,"},{"line_number":226,"context_line":"        help\u003d("},{"line_number":227,"context_line":"            \u0027If this value is set to True then the subsystem of cron triggers\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f4e5783_46cd4b2f","line":224,"in_reply_to":"5f4e5783_66096794","updated":"2017-10-17 07:58:08.000000000","message":"Yeah, Ok, let me change it.","commit_id":"40e25d235e60e13c91149819148a1d8734cd65a2"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"67d780a3163192b418aa074c9c874051d6cc8d15","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        help\u003d("},{"line_number":227,"context_line":"            \u0027If this value is set to False then the subsystem of cron triggers\u0027"},{"line_number":228,"context_line":"            \u0027 is disabled. Disabling cron triggers increases system\u0027"},{"line_number":229,"context_line":"            \u0027performance.\u0027"},{"line_number":230,"context_line":"        )"},{"line_number":231,"context_line":"    ),"},{"line_number":232,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_311a8acb","line":229,"updated":"2017-10-25 22:35:31.000000000","message":"A space at the beginning of the line is missing.","commit_id":"3cc5082b59980b46fd9c8ae023418412428e3456"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"7ba04fd1870b7b37c74fb5dc6939ff51c58ad015","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        help\u003d("},{"line_number":227,"context_line":"            \u0027If this value is set to False then the subsystem of cron triggers\u0027"},{"line_number":228,"context_line":"            \u0027 is disabled. Disabling cron triggers increases system\u0027"},{"line_number":229,"context_line":"            \u0027performance.\u0027"},{"line_number":230,"context_line":"        )"},{"line_number":231,"context_line":"    ),"},{"line_number":232,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_77010838","line":229,"in_reply_to":"3f4b6375_311a8acb","updated":"2017-10-26 07:30:10.000000000","message":"Ok.","commit_id":"3cc5082b59980b46fd9c8ae023418412428e3456"}],"mistral/services/periodic.py":[{"author":{"_account_id":9029,"name":"Moshe Elisha","email":"moshe.elisha@nokia.com","username":"MosheElisha"},"change_message_id":"d88026594ac8d75a568ced5680081e73f4c9f421","unresolved":false,"context_lines":[{"line_number":37,"context_line":"class MistralPeriodicTasks(periodic_task.PeriodicTasks):"},{"line_number":38,"context_line":"    @periodic_task.periodic_task(spacing\u003d1, run_immediately\u003dTrue)"},{"line_number":39,"context_line":"    def process_cron_triggers_v2(self, ctx):"},{"line_number":40,"context_line":"        print(\"processing cron triggers... \")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        for trigger in triggers.get_next_cron_triggers():"},{"line_number":43,"context_line":"            LOG.debug(\"Processing cron trigger: %s\", trigger)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f4e5783_e6fc3771","line":40,"updated":"2017-10-17 07:52:30.000000000","message":"Should we use LOG instead?","commit_id":"40e25d235e60e13c91149819148a1d8734cd65a2"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"4b361822adbdc5339cf3374e5d1c11cf92d369e3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"class MistralPeriodicTasks(periodic_task.PeriodicTasks):"},{"line_number":38,"context_line":"    @periodic_task.periodic_task(spacing\u003d1, run_immediately\u003dTrue)"},{"line_number":39,"context_line":"    def process_cron_triggers_v2(self, ctx):"},{"line_number":40,"context_line":"        print(\"processing cron triggers... \")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        for trigger in triggers.get_next_cron_triggers():"},{"line_number":43,"context_line":"            LOG.debug(\"Processing cron trigger: %s\", trigger)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f4e5783_66ca871b","line":40,"in_reply_to":"5f4e5783_e6fc3771","updated":"2017-10-17 07:58:08.000000000","message":"Yes, sure. It\u0027s just a left over from my experiments..","commit_id":"40e25d235e60e13c91149819148a1d8734cd65a2"}],"mistral/tests/unit/api/test_service.py":[{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"67d780a3163192b418aa074c9c874051d6cc8d15","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestWSGIService(base.BaseTest):"},{"line_number":25,"context_line":"    @mock.patch(\u0027mistral.api.app.setup_app\u0027)"},{"line_number":26,"context_line":"    @mock.patch.object(service.wsgi, \u0027Server\u0027)"},{"line_number":27,"context_line":"    def test_workers_set_default(self, wsgi_server, mock_app):"},{"line_number":28,"context_line":"        service_name \u003d \"mistral_api\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_593acc98","side":"PARENT","line":25,"updated":"2017-10-25 22:35:31.000000000","message":"I would suggest not to remove mocking of setup_app, because it leads to the real start of the service, and we see errors in unit tests.\n\nProbably we don\u0027t need the decorator but just can wrap the body in a context manager like:\n\nwith mock.patch(\u0027mistral.api.app.setup_app\u0027):\n    test_service \u003d service.WSGIService(service_name)\n\n    wsgi_server.assert_called_once_with(\n        cfg.CONF,\n        service_name,\n        test_service.app,\n        host\u003d\u00270.0.0.0\u0027,\n        port\u003d8989,\n        use_ssl\u003dFalse\n    )","commit_id":"e5cd0ad2e93883200b483d8a3a840770739e43e5"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"7ba04fd1870b7b37c74fb5dc6939ff51c58ad015","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestWSGIService(base.BaseTest):"},{"line_number":25,"context_line":"    @mock.patch(\u0027mistral.api.app.setup_app\u0027)"},{"line_number":26,"context_line":"    @mock.patch.object(service.wsgi, \u0027Server\u0027)"},{"line_number":27,"context_line":"    def test_workers_set_default(self, wsgi_server, mock_app):"},{"line_number":28,"context_line":"        service_name \u003d \"mistral_api\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_023a9497","side":"PARENT","line":25,"in_reply_to":"3f4b6375_593acc98","updated":"2017-10-26 07:30:10.000000000","message":"Yeah, this makes sense.","commit_id":"e5cd0ad2e93883200b483d8a3a840770739e43e5"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"67d780a3163192b418aa074c9c874051d6cc8d15","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        )"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @mock.patch(\u0027mistral.api.app.setup_app\u0027)"},{"line_number":50,"context_line":"    @mock.patch.object(service.wsgi, \u0027Server\u0027)"},{"line_number":51,"context_line":"    def test_workers_set_correct_setting(self, wsgi_server, mock_app):"},{"line_number":52,"context_line":"        self.override_config(\u0027api_workers\u0027, 8, group\u003d\u0027api\u0027)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_86710347","side":"PARENT","line":50,"updated":"2017-10-25 22:35:31.000000000","message":"ditto","commit_id":"e5cd0ad2e93883200b483d8a3a840770739e43e5"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"67d780a3163192b418aa074c9c874051d6cc8d15","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.assertEqual(8, test_service.workers)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @mock.patch(\u0027mistral.api.app.setup_app\u0027)"},{"line_number":68,"context_line":"    @mock.patch.object(service.wsgi, \u0027Server\u0027)"},{"line_number":69,"context_line":"    def test_workers_set_zero_setting(self, wsgi_server, mock_app):"},{"line_number":70,"context_line":"        self.override_config(\u0027api_workers\u0027, 0, group\u003d\u0027api\u0027)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_a6abdf72","side":"PARENT","line":68,"updated":"2017-10-25 22:35:31.000000000","message":"Ditto","commit_id":"e5cd0ad2e93883200b483d8a3a840770739e43e5"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"67d780a3163192b418aa074c9c874051d6cc8d15","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        self.assertEqual(processutils.get_worker_count(), test_service.workers)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @mock.patch(\u0027mistral.api.app.setup_app\u0027)"},{"line_number":86,"context_line":"    @mock.patch.object(service.wsgi, \u0027Server\u0027)"},{"line_number":87,"context_line":"    def test_wsgi_service_with_ssl_enabled(self, wsgi_server, mock_app):"},{"line_number":88,"context_line":"        self.override_config(\u0027enable_ssl_api\u0027, True, group\u003d\u0027api\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_3934b092","side":"PARENT","line":85,"updated":"2017-10-25 22:35:31.000000000","message":"ditto","commit_id":"e5cd0ad2e93883200b483d8a3a840770739e43e5"}],"mistral/tests/unit/base.py":[{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"67d780a3163192b418aa074c9c874051d6cc8d15","unresolved":false,"context_lines":[{"line_number":101,"context_line":"class BaseTest(base.BaseTestCase):"},{"line_number":102,"context_line":"    def setUp(self):"},{"line_number":103,"context_line":"        super(BaseTest, self).setUp()"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        self.addCleanup(spec_parser.clear_caches)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def register_action_class(self, name, cls, attributes\u003dNone, desc\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_a6c4ff40","line":104,"updated":"2017-10-25 22:35:31.000000000","message":"Do we really need these empty lines?","commit_id":"3cc5082b59980b46fd9c8ae023418412428e3456"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"7ba04fd1870b7b37c74fb5dc6939ff51c58ad015","unresolved":false,"context_lines":[{"line_number":101,"context_line":"class BaseTest(base.BaseTestCase):"},{"line_number":102,"context_line":"    def setUp(self):"},{"line_number":103,"context_line":"        super(BaseTest, self).setUp()"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        self.addCleanup(spec_parser.clear_caches)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def register_action_class(self, name, cls, attributes\u003dNone, desc\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_d79d5c0a","line":104,"in_reply_to":"3f4b6375_a6c4ff40","updated":"2017-10-26 07:30:10.000000000","message":"Yes :)","commit_id":"3cc5082b59980b46fd9c8ae023418412428e3456"}]}
