)]}'
{"watcher/cmd/decisionengine.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from oslo_service import service"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from watcher._i18n import _LI"},{"line_number":29,"context_line":"from watcher.common import service as watcher_service"},{"line_number":30,"context_line":"from watcher.decision_engine import manager as de_manager"},{"line_number":31,"context_line":"from watcher import version"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_3ed6b8c5","line":29,"range":{"start_line":29,"start_character":38,"end_line":29,"end_character":53},"updated":"2016-03-21 13:02:32.000000000","message":"Why not use service directly ?","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from oslo_service import service"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from watcher._i18n import _LI"},{"line_number":29,"context_line":"from watcher.common import service as watcher_service"},{"line_number":30,"context_line":"from watcher.decision_engine import manager as de_manager"},{"line_number":31,"context_line":"from watcher import version"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_285bde88","line":29,"range":{"start_line":29,"start_character":38,"end_line":29,"end_character":53},"in_reply_to":"fa0719c6_3ed6b8c5","updated":"2016-03-30 08:06:24.000000000","message":"Because there is the import on line 26 that clashes with this import","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from watcher._i18n import _LI"},{"line_number":29,"context_line":"from watcher.common import service as watcher_service"},{"line_number":30,"context_line":"from watcher.decision_engine import manager as de_manager"},{"line_number":31,"context_line":"from watcher import version"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_dee5fca8","line":30,"range":{"start_line":30,"start_character":44,"end_line":30,"end_character":57},"updated":"2016-03-21 13:02:32.000000000","message":"Why not use manager directly ?","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from watcher._i18n import _LI"},{"line_number":29,"context_line":"from watcher.common import service as watcher_service"},{"line_number":30,"context_line":"from watcher.decision_engine import manager as de_manager"},{"line_number":31,"context_line":"from watcher import version"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_085eda75","line":30,"range":{"start_line":30,"start_character":44,"end_line":30,"end_character":57},"in_reply_to":"fa0719c6_dee5fca8","updated":"2016-03-30 08:06:24.000000000","message":"Done","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"}],"watcher/common/service.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":36,"context_line":"service_opts \u003d ["},{"line_number":37,"context_line":"    cfg.IntOpt(\u0027periodic_interval\u0027,"},{"line_number":38,"context_line":"               default\u003d60,"},{"line_number":39,"context_line":"               help\u003d\u0027Seconds between running periodic tasks.\u0027),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027host\u0027,"},{"line_number":41,"context_line":"               default\u003dsocket.getfqdn(),"},{"line_number":42,"context_line":"               help\u003d\u0027Name of this node. This can be an opaque identifier.  \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_e3c82777","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":61},"updated":"2016-03-21 13:02:32.000000000","message":"add _() i18n","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"service_opts \u003d ["},{"line_number":37,"context_line":"    cfg.IntOpt(\u0027periodic_interval\u0027,"},{"line_number":38,"context_line":"               default\u003d60,"},{"line_number":39,"context_line":"               help\u003d\u0027Seconds between running periodic tasks.\u0027),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027host\u0027,"},{"line_number":41,"context_line":"               default\u003dsocket.getfqdn(),"},{"line_number":42,"context_line":"               help\u003d\u0027Name of this node. This can be an opaque identifier.  \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_08d53ab8","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":61},"in_reply_to":"fa0719c6_e3c82777","updated":"2016-03-30 08:06:24.000000000","message":"Done","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":39,"context_line":"               help\u003d\u0027Seconds between running periodic tasks.\u0027),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027host\u0027,"},{"line_number":41,"context_line":"               default\u003dsocket.getfqdn(),"},{"line_number":42,"context_line":"               help\u003d\u0027Name of this node. This can be an opaque identifier.  \u0027"},{"line_number":43,"context_line":"               \u0027It is not necessarily a hostname, FQDN, or IP address. \u0027"},{"line_number":44,"context_line":"               \u0027However, the node name must be valid within \u0027"},{"line_number":45,"context_line":"               \u0027an AMQP key, and if using ZeroMQ, a valid \u0027"},{"line_number":46,"context_line":"               \u0027hostname, FQDN, or IP address.\u0027),"},{"line_number":47,"context_line":"]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"cfg.CONF.register_opts(service_opts)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_a3958f41","line":46,"range":{"start_line":42,"start_character":20,"end_line":46,"end_character":47},"updated":"2016-03-21 13:02:32.000000000","message":"ditto","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"               help\u003d\u0027Seconds between running periodic tasks.\u0027),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027host\u0027,"},{"line_number":41,"context_line":"               default\u003dsocket.getfqdn(),"},{"line_number":42,"context_line":"               help\u003d\u0027Name of this node. This can be an opaque identifier.  \u0027"},{"line_number":43,"context_line":"               \u0027It is not necessarily a hostname, FQDN, or IP address. \u0027"},{"line_number":44,"context_line":"               \u0027However, the node name must be valid within \u0027"},{"line_number":45,"context_line":"               \u0027an AMQP key, and if using ZeroMQ, a valid \u0027"},{"line_number":46,"context_line":"               \u0027hostname, FQDN, or IP address.\u0027),"},{"line_number":47,"context_line":"]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"cfg.CONF.register_opts(service_opts)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_68dcb6e4","line":46,"range":{"start_line":42,"start_character":20,"end_line":46,"end_character":47},"in_reply_to":"fa0719c6_a3958f41","updated":"2016-03-30 08:06:24.000000000","message":"Done","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"class WSGIService(service.ServiceBase):"},{"line_number":63,"context_line":"    \"\"\"Provides ability to launch ironic API from wsgi app.\"\"\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, name, use_ssl\u003dFalse):"},{"line_number":66,"context_line":"        \"\"\"Initialize, but do not start the WSGI server."}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_63e7f7e4","line":63,"range":{"start_line":63,"start_character":34,"end_line":63,"end_character":40},"updated":"2016-03-21 13:02:32.000000000","message":"watcher","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"class WSGIService(service.ServiceBase):"},{"line_number":63,"context_line":"    \"\"\"Provides ability to launch ironic API from wsgi app.\"\"\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, name, use_ssl\u003dFalse):"},{"line_number":66,"context_line":"        \"\"\"Initialize, but do not start the WSGI server."}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_48d732bf","line":63,"range":{"start_line":63,"start_character":34,"end_line":63,"end_character":40},"in_reply_to":"fa0719c6_63e7f7e4","updated":"2016-03-30 08:06:24.000000000","message":"Done","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"}],"watcher/decision_engine/rpcapi.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":30,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":31,"context_line":"CONF \u003d cfg.CONF"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONF.register_group(manager.decision_engine_opt_group)"},{"line_number":34,"context_line":"CONF.register_opts(manager.WATCHER_DECISION_ENGINE_OPTS,"},{"line_number":35,"context_line":"                   manager.decision_engine_opt_group)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_be4648bd","line":33,"range":{"start_line":33,"start_character":28,"end_line":33,"end_character":53},"updated":"2016-03-21 13:02:32.000000000","message":"It would nice to unify names of config group: lowercase or uppercase.","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":31,"context_line":"CONF \u003d cfg.CONF"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONF.register_group(manager.decision_engine_opt_group)"},{"line_number":34,"context_line":"CONF.register_opts(manager.WATCHER_DECISION_ENGINE_OPTS,"},{"line_number":35,"context_line":"                   manager.decision_engine_opt_group)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_c834e2fc","line":33,"range":{"start_line":33,"start_character":28,"end_line":33,"end_character":53},"in_reply_to":"fa0719c6_be4648bd","updated":"2016-03-30 08:06:24.000000000","message":"All OptGroup instances I found where lower case: only the list of Opt instances (e.g. WATCHER_DECISION_ENGINE_OPTS) that the respective groups are composed of are actually upper cased.\n\nSo to me this is consistent enough.","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    API_VERSION \u003d \u00271.0\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    conductor_endpoints \u003d []"},{"line_number":56,"context_line":"    status_endpoints \u003d [notification_handler.NotificationHandler]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_9e542455","line":55,"range":{"start_line":55,"start_character":26,"end_line":55,"end_character":28},"updated":"2016-03-21 13:02:32.000000000","message":"Should we have more than one endpoint at the same time ? if not, why use an array ?","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    API_VERSION \u003d \u00271.0\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    conductor_endpoints \u003d []"},{"line_number":56,"context_line":"    status_endpoints \u003d [notification_handler.NotificationHandler]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_488572ab","line":55,"range":{"start_line":55,"start_character":26,"end_line":55,"end_character":28},"in_reply_to":"fa0719c6_9e542455","updated":"2016-03-30 08:06:24.000000000","message":"IMHO, this makes it more extensible if we need to.","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    API_VERSION \u003d \u00271.0\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    conductor_endpoints \u003d []"},{"line_number":56,"context_line":"    status_endpoints \u003d [notification_handler.NotificationHandler]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self):"},{"line_number":59,"context_line":"        self.publisher_id \u003d CONF.watcher_decision_engine.publisher_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_be4be8af","line":56,"range":{"start_line":56,"start_character":23,"end_line":56,"end_character":65},"updated":"2016-03-21 13:02:32.000000000","message":"ditto","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    API_VERSION \u003d \u00271.0\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    conductor_endpoints \u003d []"},{"line_number":56,"context_line":"    status_endpoints \u003d [notification_handler.NotificationHandler]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self):"},{"line_number":59,"context_line":"        self.publisher_id \u003d CONF.watcher_decision_engine.publisher_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_a8ab6e1c","line":56,"range":{"start_line":56,"start_character":23,"end_line":56,"end_character":65},"in_reply_to":"fa0719c6_be4be8af","updated":"2016-03-30 08:06:24.000000000","message":"see above response","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"}],"watcher/tests/common/test_service.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def __init__(self):"},{"line_number":34,"context_line":"        self.publisher_id \u003d \"pub_id\""},{"line_number":35,"context_line":"        self.conductor_topic \u003d \"test_topic\""},{"line_number":36,"context_line":"        self.status_topic \u003d \"status_topic\""},{"line_number":37,"context_line":"        self.api_version \u003d self.API_VERSION"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_194dce72","line":35,"range":{"start_line":35,"start_character":32,"end_line":35,"end_character":36},"updated":"2016-03-21 13:02:32.000000000","message":"s/test/conductor/","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def __init__(self):"},{"line_number":34,"context_line":"        self.publisher_id \u003d \"pub_id\""},{"line_number":35,"context_line":"        self.conductor_topic \u003d \"test_topic\""},{"line_number":36,"context_line":"        self.status_topic \u003d \"status_topic\""},{"line_number":37,"context_line":"        self.api_version \u003d self.API_VERSION"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_a31eef60","line":35,"range":{"start_line":35,"start_character":32,"end_line":35,"end_character":36},"in_reply_to":"fa0719c6_194dce72","updated":"2016-03-30 08:06:24.000000000","message":"Done","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.assertEqual(2, m_handler.call_count)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_build_topic_handler(self):"},{"line_number":58,"context_line":"        topic_name \u003d \"MyTopic\""},{"line_number":59,"context_line":"        dummy_service \u003d service.Service(DummyManager)"},{"line_number":60,"context_line":"        handler \u003d dummy_service.build_topic_handler(topic_name)"},{"line_number":61,"context_line":"        self.assertIsNotNone(handler)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_5958e6fa","line":58,"range":{"start_line":58,"start_character":22,"end_line":58,"end_character":30},"updated":"2016-03-21 13:02:32.000000000","message":"s/MyTopic/mytopic/","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.assertEqual(2, m_handler.call_count)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_build_topic_handler(self):"},{"line_number":58,"context_line":"        topic_name \u003d \"MyTopic\""},{"line_number":59,"context_line":"        dummy_service \u003d service.Service(DummyManager)"},{"line_number":60,"context_line":"        handler \u003d dummy_service.build_topic_handler(topic_name)"},{"line_number":61,"context_line":"        self.assertIsNotNone(handler)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_0816da54","line":58,"range":{"start_line":58,"start_character":22,"end_line":58,"end_character":30},"in_reply_to":"fa0719c6_5958e6fa","updated":"2016-03-30 08:06:24.000000000","message":"Done","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"70a55a0cd4a237423c48561cf235516a5bc1cbca","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        payload \u003d {"},{"line_number":79,"context_line":"            \"name\": \"value\","},{"line_number":80,"context_line":"        }"},{"line_number":81,"context_line":"        event \u003d \"MyEvent\""},{"line_number":82,"context_line":"        dummy_service \u003d service.Service(DummyManager)"},{"line_number":83,"context_line":"        dummy_service.publish_control(event, payload)"},{"line_number":84,"context_line":"        m_handler.publish_event.assert_called_once_with(event, payload)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_b969428e","line":81,"range":{"start_line":81,"start_character":17,"end_line":81,"end_character":24},"updated":"2016-03-21 13:02:32.000000000","message":"s/MyEvent/myevent","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ec4f65e440d37993773355ed43be8be4b936013b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        payload \u003d {"},{"line_number":79,"context_line":"            \"name\": \"value\","},{"line_number":80,"context_line":"        }"},{"line_number":81,"context_line":"        event \u003d \"MyEvent\""},{"line_number":82,"context_line":"        dummy_service \u003d service.Service(DummyManager)"},{"line_number":83,"context_line":"        dummy_service.publish_control(event, payload)"},{"line_number":84,"context_line":"        m_handler.publish_event.assert_called_once_with(event, payload)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_030d1b37","line":81,"range":{"start_line":81,"start_character":17,"end_line":81,"end_character":24},"in_reply_to":"fa0719c6_b969428e","updated":"2016-03-30 08:06:24.000000000","message":"Done","commit_id":"e401972196e9f9537c1e24cfb4f5047ac8853adb"}]}
