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
def test_port_in_use(self, m_logging_config, config, worker_name, exception, exp_msg): worker = NowcastWorker(worker_name, "description") worker._socket = Mock(name="zmq_socket") worker.config._dict = config worker._parsed_args = SimpleNamespace(debug=False) m_logging_config.dictConfig.side_effect = (exception, None) msg = worker._configure_logging() assert msg == exp_msg
def test_all_ports_in_use(self, m_logging_config, config, worker_name, exception): worker = NowcastWorker(worker_name, "description") worker._socket = Mock(name="zmq_socket") worker.config._dict = config worker._parsed_args = SimpleNamespace(debug=False) m_logging_config.dictConfig.side_effect = exception with pytest.raises(WorkerError): worker._configure_logging()
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")