Ejemplo n.º 1
0
 def test_tell_manager(self):
     worker = NowcastWorker("test_worker", "description")
     worker._parsed_args = Mock(debug=False)
     worker._socket = Mock(name="_socket")
     worker.logger = Mock(name="logger")
     config = Config()
     config.file = "nowcast.yaml"
     worker.config._dict = {
         "message registry": {
             "manager": {
                 "ack": "message acknowledged"
             },
             "workers": {
                 "test_worker": {
                     "success": "successful test"
                 }
             },
         }
     }
     mgr_msg = Message(source="manager", type="ack")
     worker._socket.recv_string.return_value = mgr_msg.serialize()
     response = worker.tell_manager("success", "payload")
     worker._socket.send_string.assert_called_once_with(
         Message(source="test_worker", type="success",
                 payload="payload").serialize())
     worker._socket.recv_string.assert_called_once_with()
     assert worker.logger.debug.call_count == 2
     assert response == mgr_msg
Ejemplo n.º 2
0
 def test_unregistered_msg_type(self):
     mgr = manager.NowcastManager()
     mgr._msg_registry = {"workers": {"test_worker": {}}}
     mgr._handle_unregistered_msg_type = Mock(
         name="_handle_unregistered_msg_type")
     mgr._log_received_msg = Mock(name="_log_received_msg")
     msg = Message(source="test_worker", type="foo", payload=None)
     reply, next_workers = mgr._message_handler(msg.serialize())
     mgr._handle_unregistered_msg_type.assert_called_once_with(msg)
     assert reply == mgr._handle_unregistered_msg_type()
     assert next_workers == []
     assert not mgr._log_received_msg.called
Ejemplo n.º 3
0
 def test_need_msg(self):
     mgr = manager.NowcastManager()
     mgr._msg_registry = {"workers": {"test_worker": {"need": "Need info"}}}
     mgr._handle_need_msg = Mock(
         name="_handle_need_msg",
         return_value=("ack msg w/ requested info in payload"),
     )
     mgr._log_received_msg = Mock(name="_log_received_msg")
     msg = Message(source="test_worker", type="need", payload="info")
     reply, next_workers = mgr._message_handler(msg.serialize())
     assert mgr._log_received_msg.called
     mgr._handle_need_msg.assert_called_once_with(msg)
     assert reply == "ack msg w/ requested info in payload"
     assert next_workers == []
Ejemplo n.º 4
0
 def test_continue_msg(self):
     mgr = manager.NowcastManager()
     mgr._msg_registry = {
         "workers": {
             "test_worker": {
                 "success": "success"
             }
         }
     }
     mgr._handle_continue_msg = Mock(name="_handle_continue_msg",
                                     return_value=("ack", "next_worker"))
     mgr._log_received_msg = Mock(name="_log_received_msg")
     msg = Message(source="test_worker", type="success", payload=None)
     reply, next_workers = mgr._message_handler(msg.serialize())
     assert mgr._log_received_msg.called
     mgr._handle_continue_msg.assert_called_once_with(msg)
     assert reply == "ack"
     assert next_workers == "next_worker"
Ejemplo n.º 5
0
 def test_clear_checklist_msg(self):
     mgr = manager.NowcastManager()
     mgr._msg_registry = {
         "workers": {
             "test_worker": {
                 "clear checklist":
                 "request that manager clear system checklist"
             }
         }
     }
     mgr._clear_checklist = Mock(name="_clear_checklist",
                                 return_value="checklist cleared")
     mgr._log_received_msg = Mock(name="_log_received_msg")
     msg = Message(source="test_worker",
                   type="clear checklist",
                   payload=None)
     reply, next_workers = mgr._message_handler(msg.serialize())
     assert mgr._log_received_msg.called
     mgr._clear_checklist.assert_called_once_with()
     assert reply == "checklist cleared"
     assert next_workers == []
Ejemplo n.º 6
0
 def test_unregistered_manager_message_type(self):
     worker = NowcastWorker("test_worker", "description")
     worker._parsed_args = Mock(debug=False)
     worker._socket = Mock(name="_socket")
     worker.logger = Mock(name="logger")
     config = Config()
     config.file = "nowcast.yaml"
     worker.config._dict = {
         "message registry": {
             "manager": {
                 "ack": "message acknowledged"
             },
             "workers": {
                 "test_worker": {
                     "success": "successful test"
                 }
             },
         }
     }
     mgr_msg = Message(source="manager", type="foo")
     worker._socket.recv_string.return_value = mgr_msg.serialize()
     with pytest.raises(WorkerError):
         worker.tell_manager("success", "payload")