def test_setup_logging(mock_gwc, tmpdir): mock_gwc.return_value.cachito_request_file_logs_dir = str(tmpdir) mock_gwc.return_value.cachito_request_file_logs_level = "DEBUG" mock_gwc.return_value.cachito_request_file_logs_format = ( "[%(asctime)s %(name)s %(levelname)s %(module)s.%(funcName)s] %(message)s" ) mock_gwc.return_value.cachito_request_file_logs_perm = 0o660 workers_logger = logging.getLogger("cachito.workers") workers_logger.disabled = False workers_logger.setLevel(logging.INFO) logger = logging.getLogger() task_id = mock.Mock() task = mock.Mock() def _dummy_task(msg, request_id): return task.__wrapped__ = _dummy_task try: celery_logging.setup_task_logging(task_id, task, args=["hello"], kwargs={"request_id": 3}) workers_logger.info("Test log message") finally: for handler in logger.handlers: if isinstance(handler, logging.FileHandler): logger.removeHandler(handler) # verify that correct message was logged with open(tmpdir.join("3.log")) as f: assert "Test log message" in f.read()
def test_setup_logging_request_id_not_found(mock_gwc, mock_get_func_arg_val, tmpdir): mock_gwc.return_value.cachito_request_file_logs_dir = str(tmpdir) mock_gwc.return_value.cachito_request_file_logs_level = "DEBUG" mock_gwc.return_value.cachito_request_file_logs_format = ( "[%(asctime)s %(name)s %(levelname)s %(module)s.%(funcName)s] %(message)s" ) mock_get_func_arg_val.return_value = None task_id = mock.Mock() task = mock.Mock() def _dummy_task(msg, request_id): return task.__wrapped__ = _dummy_task expected = "Unable to get 'request_id'" with pytest.raises(CachitoError, match=expected): celery_logging.setup_task_logging(task_id, task, args=["hello"], kwargs={"request_id": 3})