Exemplo n.º 1
0
 def test_unregistered_worker(self):
     worker = NowcastWorker("test_worker", "description")
     worker._parsed_args = Mock(debug=True)
     worker.logger = Mock(name="logger")
     config = Config()
     config.file = "nowcast.yaml"
     worker.config._dict = {"message registry": {"workers": {}}}
     with pytest.raises(WorkerError):
         worker.tell_manager("success", "payload")
Exemplo n.º 2
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
Exemplo n.º 3
0
 def test_crash_tell_manager(self):
     worker = NowcastWorker("worker_name", "description")
     worker.logger = Mock(name="logger")
     worker.tell_manager = Mock(name="tell_manager")
     worker.worker_func = Mock(name="worker_func", side_effect=Exception)
     worker._do_work()
     worker.tell_manager.assert_called_once_with("crash")
Exemplo n.º 4
0
 def test_logger_critical_unhandled_exception(self):
     worker = NowcastWorker("worker_name", "description")
     worker.logger = Mock(name="logger")
     worker.tell_manager = Mock(name="tell_manager")
     worker._context = Mock(name="context")
     worker.worker_func = Mock(name="worker_func", side_effect=Exception)
     worker._do_work()
     worker.logger.critical.assert_called_once_with("unhandled exception:",
                                                    exc_info=True)
Exemplo n.º 5
0
 def test_failure_tell_manager(self):
     worker = NowcastWorker("worker_name", "description")
     worker.init_cli()
     worker.logger = Mock(name="logger")
     worker.tell_manager = Mock(name="tell_manager")
     worker.worker_func = Mock(name="worker_func", side_effect=WorkerError)
     worker.failure = Mock(name="failure_func", return_value="failure")
     worker._do_work()
     worker.tell_manager.assert_called_once_with("failure")
Exemplo n.º 6
0
 def test_success_tell_manager(self):
     worker = NowcastWorker("worker_name", "description")
     worker.init_cli()
     worker.logger = Mock(name="logger")
     worker.tell_manager = Mock(name="tell_manager")
     worker.worker_func = Mock(name="worker_func", return_value="checklist")
     worker.success = Mock(name="success_func", return_value="success")
     worker._do_work()
     worker.tell_manager.assert_called_once_with("success", "checklist")
Exemplo n.º 7
0
 def test_success_func(self):
     worker = NowcastWorker("worker_name", "description")
     worker.init_cli()
     worker.logger = Mock(name="logger")
     worker.tell_manager = Mock(name="tell_manager")
     worker.worker_func = Mock(name="worker_func")
     worker.success = Mock(name="success_func")
     worker._do_work()
     worker.success.assert_called_once_with(worker._parsed_args)
Exemplo n.º 8
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")
Exemplo n.º 9
0
 def test_debug_mode(self):
     worker = NowcastWorker("test_worker", "description")
     worker._parsed_args = Mock(debug=True)
     worker.logger = Mock(name="logger")
     config = Config()
     config.file = "nowcast.yaml"
     worker.config._dict = {
         "message registry": {
             "workers": {
                 "test_worker": {
                     "success": "successful test"
                 }
             }
         }
     }
     response_payload = worker.tell_manager("success", "payload")
     assert worker.logger.debug.call_count == 1
     assert response_payload is None