Exemple #1
0
 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()
Exemple #2
0
 def test_debug_mode_no_console_handler(self, m_logging, m_logging_config,
                                        config, worker_name):
     worker = NowcastWorker(worker_name, "description")
     worker.config._dict = config
     worker._parsed_args = SimpleNamespace(debug=True)
     m_file_handler = Mock(name="m_file_handler")
     m_logging.getLogger.return_value = Mock(root=Mock(
         handlers=[m_file_handler]))
     worker._configure_logging()
     m_file_handler.setLevel.assert_called_once_with(100)
Exemple #3
0
 def test_zmq_handler_root_topic(self, m_logging, m_logging_config):
     worker = NowcastWorker("test_worker", "description")
     worker.config._dict = self.zmq_logging_config_ports_list
     worker._parsed_args = SimpleNamespace(debug=False)
     m_handler = Mock(name="m_zmq_handler",
                      spec=zmq.log.handlers.PUBHandler)
     m_logging.getLogger.return_value = Mock(root=Mock(
         handlers=[m_handler]))
     worker._configure_logging()
     assert m_handler.root_topic == "test_worker"
Exemple #4
0
 def test_different_hosts_different_ports(self, m_logging,
                                          m_logging_config):
     worker = NowcastWorker("remote_worker", "description")
     worker.config._dict = self.zmq_logging_config_different_hosts_different_ports
     worker._parsed_args = SimpleNamespace(debug=False)
     m_handler = Mock(name="m_zmq_handler",
                      spec=zmq.log.handlers.PUBHandler)
     m_logging.getLogger.return_value = Mock(root=Mock(
         handlers=[m_handler]))
     with pytest.raises(WorkerError):
         worker._configure_logging()
Exemple #5
0
 def test_logging_dictConfig(self, m_logging_config, config, worker_name):
     worker = NowcastWorker(worker_name, "description")
     worker.config._dict = config
     worker._parsed_args = SimpleNamespace(debug=False)
     worker._configure_logging()
     if "publisher" in worker.config["logging"]:
         m_logging_config.dictConfig.assert_called_once_with(
             worker.config["logging"]["publisher"])
     else:
         m_logging_config.dictConfig.assert_called_once_with(
             worker.config["logging"])
Exemple #6
0
 def test_msg_debug_mode(self, m_logging_config, config, worker_name,
                         exp_msg):
     worker = NowcastWorker(worker_name, "description")
     worker.config._dict = config
     worker._parsed_args = SimpleNamespace(debug=True)
     msg = worker._configure_logging()
     assert msg == "**debug mode** writing log messages to console"
Exemple #7
0
 def test_zmq_handler_formatters(self, m_logging, m_logging_config):
     worker = NowcastWorker("test_worker", "description")
     worker.config._dict = self.zmq_logging_config_ports_list
     worker._parsed_args = SimpleNamespace(debug=False)
     m_handler = Mock(name="m_zmq_handler",
                      spec=zmq.log.handlers.PUBHandler)
     m_logging.getLogger.return_value = Mock(root=Mock(
         handlers=[m_handler]))
     worker._configure_logging()
     expected = {
         m_logging.DEBUG: m_logging.Formatter("%(message)s\n"),
         m_logging.INFO: m_logging.Formatter("%(message)s\n"),
         m_logging.WARNING: m_logging.Formatter("%(message)s\n"),
         m_logging.ERROR: m_logging.Formatter("%(message)s\n"),
         m_logging.CRITICAL: m_logging.Formatter("%(message)s\n"),
     }
     assert m_handler.formatters == expected
Exemple #8
0
 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
Exemple #9
0
 def test_debug_mode_console_logging_only(self, m_logging, m_logging_config,
                                          config, worker_name):
     worker = NowcastWorker(worker_name, "description")
     if "publisher" in config["logging"]:
         p_config = patch.dict(config["logging"]["publisher"]["handlers"],
                               {"console": {
                                   "level": 1000
                               }})
     else:
         p_config = patch.dict(config["logging"]["handlers"],
                               {"console": {
                                   "level": 1000
                               }})
     worker._parsed_args = SimpleNamespace(debug=True)
     m_file_handler = Mock(name="m_file_handler")
     m_console_handler = Mock(name="m_console_handler")
     m_console_handler.name = "console"
     m_logging.getLogger.return_value = Mock(root=Mock(
         handlers=[m_file_handler, m_console_handler]))
     with p_config:
         worker.config._dict = config
         worker._configure_logging()
     m_console_handler.setLevel.assert_called_once_with(m_logging.DEBUG)
     m_file_handler.setLevel.assert_called_once_with(1000)
Exemple #10
0
 def test_do_work(self, m_logging):
     worker = NowcastWorker("worker_name", "description")
     worker.init_cli()
     m_worker_func = Mock(name="worker_func")
     m_success = Mock(name="success")
     m_failure = Mock(name="failure")
     worker.cli.parser.parse_args = Mock(name="parse_args")
     worker._configure_logging = Mock(name="_configure_logging")
     worker.logger = m_logging()
     worker._install_signal_handlers = Mock(name="_install_signal_handlers")
     worker._init_zmq_interface = Mock(name="_init_zmq_interface")
     worker._do_work = Mock(name="_do_work")
     p_config_open = patch("nemo_nowcast.config.open",
                           mock_open(read_data=self.config))
     with p_config_open:
         worker.run(m_worker_func, m_success, m_failure)
     assert worker._do_work.call_count == 1
Exemple #11
0
 def test_logging_info_debug_mode(self, m_logging):
     worker = NowcastWorker("worker_name", "description")
     worker.init_cli()
     m_worker_func = Mock(name="worker_func")
     m_success = Mock(name="success")
     m_failure = Mock(name="failure")
     worker.cli.parser.parse_args = Mock(
         name="parse_args",
         return_value=SimpleNamespace(debug=True,
                                      config_file="nowcast.yaml"),
     )
     worker._configure_logging = Mock(name="_configure_logging")
     worker.logger = m_logging()
     worker._install_signal_handlers = Mock(name="_install_signal_handlers")
     worker._init_zmq_interface = Mock(name="_init_zmq_interface")
     worker._do_work = Mock(name="_do_work")
     p_config_open = patch("nemo_nowcast.config.open",
                           mock_open(read_data=self.config))
     with p_config_open:
         worker.run(m_worker_func, m_success, m_failure)
     assert worker.logger.info.call_count == 2
Exemple #12
0
 def test_config_load(self, m_logging):
     worker = NowcastWorker("worker_name", "description")
     worker.config._dict = {
         "logging": {},
         "message registry": {
             "next workers module": "nowcast.next_workers",
             "workers": {},
         },
     }
     worker.config.load = Mock()
     worker.init_cli()
     m_worker_func = Mock(name="worker_func")
     m_success = Mock(name="success")
     m_failure = Mock(name="failure")
     worker.cli.parser.parse_args = Mock(name="parse_args")
     worker._configure_logging = Mock(name="_configure_logging")
     worker.logger = m_logging()
     worker._install_signal_handlers = Mock(name="_install_signal_handlers")
     worker._init_zmq_interface = Mock(name="_init_zmq_interface")
     worker._do_work = Mock(name="_do_work")
     worker.run(m_worker_func, m_success, m_failure)
     worker.config.load.assert_called_once_with(
         worker._parsed_args.config_file)
Exemple #13
0
 def test_logger_name(self, m_logging_config, config, worker_name):
     worker = NowcastWorker(worker_name, "description")
     worker.config._dict = config
     worker._parsed_args = SimpleNamespace(debug=False)
     worker._configure_logging()
     assert worker.logger.name == worker_name
Exemple #14
0
 def test_msg(self, m_logging_config, config, worker_name, exp_msg):
     worker = NowcastWorker(worker_name, "description")
     worker.config._dict = config
     worker._parsed_args = SimpleNamespace(debug=False)
     msg = worker._configure_logging()
     assert msg == exp_msg