Skip to content
This repository has been archived by the owner on Sep 2, 2024. It is now read-only.

Commit

Permalink
(#569) Fix logging tests
Browse files Browse the repository at this point in the history
  • Loading branch information
DominicOram committed Apr 25, 2023
1 parent 7525a48 commit 484fd0d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 24 deletions.
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ install_requires =
xarray
doct
databroker
dodal @ git+https://github.com/DiamondLightSource/python-dodal.git@5c9d9b331cfe4c4a6a866df9785c2deed860ef5c
dodal @ git+https://github.com/DiamondLightSource/python-dodal.git@397a449e922b815d65ecb34bd8dbaa060e6a414b

[options.extras_require]
dev =
Expand Down
45 changes: 22 additions & 23 deletions src/artemis/unit_tests/test_log.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import os
from pathlib import Path
from unittest.mock import MagicMock, patch
from logging import FileHandler
from unittest.mock import patch

import pytest
from dodal.log import LOGGER as dodal_logger
Expand All @@ -10,48 +10,50 @@

@pytest.fixture
def clear_loggers():
[log.LOGGER.removeHandler(h) for h in log.LOGGER.handlers]
[dodal_logger.removeHandler(h) for h in dodal_logger.handlers]
yield
with (
patch("dodal.log.logging.FileHandler._open"),
patch("dodal.log.GELFTCPHandler.emit") as graylog_emit,
patch("dodal.log.logging.FileHandler.emit") as filehandler_emit,
):
yield filehandler_emit, graylog_emit
[log.LOGGER.removeHandler(h) for h in log.LOGGER.handlers]
[dodal_logger.removeHandler(h) for h in dodal_logger.handlers]


@patch("dodal.log.config_bluesky_logging")
@patch("dodal.log.config_ophyd_logging")
@patch("dodal.log.GELFTCPHandler")
@patch("dodal.log.logging.FileHandler")
def test_no_env_variable_sets_correct_file_handler(
mock_FileHandler,
mock_GELFTCPHandler,
mock_config_ophyd,
mock_config_bluesky,
clear_loggers,
):
log.set_up_logging_handlers(None, True)
mock_FileHandler.assert_called_once_with(filename=Path("./tmp/dev/artemis.txt"))
file_handlers: FileHandler = next(
filter(lambda h: isinstance(h, FileHandler), dodal_logger.handlers)
)

assert file_handlers.baseFilename.endswith("/tmp/dev/artemis.txt")


@patch("artemis.log.Path.mkdir")
@patch("dodal.log.GELFTCPHandler")
@patch("dodal.log.logging.FileHandler")
@patch.dict(os.environ, {"ARTEMIS_LOG_DIR": "/dls_sw/s03/logs/bluesky"})
def test_set_env_variable_sets_correct_file_handler(
mock_FileHandler, mock_GELFTCPHandler, mock_dir, clear_loggers
mock_dir,
clear_loggers,
):
log.set_up_logging_handlers(None, False)
mock_FileHandler.assert_called_once_with(
filename=Path("/dls_sw/s03/logs/bluesky/artemis.txt")

file_handlers: FileHandler = next(
filter(lambda h: isinstance(h, FileHandler), dodal_logger.handlers)
)

assert file_handlers.baseFilename == "/dls_sw/s03/logs/bluesky/artemis.txt"


@patch("dodal.log.GELFTCPHandler.emit")
@patch("dodal.log.logging.FileHandler.emit")
def test_messages_logged_from_dodal_and_artemis_contain_dcgid(
mock_filehandler_emit: MagicMock,
mock_GELFTCPHandler_emit: MagicMock,
clear_loggers,
):
mock_filehandler_emit, mock_GELFTCPHandler_emit = clear_loggers
log.set_up_logging_handlers()

log.set_dcgid_tag(100)
Expand All @@ -68,13 +70,10 @@ def test_messages_logged_from_dodal_and_artemis_contain_dcgid(
assert all(dc_group_id_correct)


@patch("dodal.log.GELFTCPHandler.emit")
@patch("dodal.log.logging.FileHandler.emit")
def test_messages_logged_from_dodal_and_artemis_get_sent_to_graylog_and_file(
mock_filehandler_emit: MagicMock,
mock_GELFTCPHandler_emit: MagicMock,
clear_loggers,
):
mock_filehandler_emit, mock_GELFTCPHandler_emit = clear_loggers
log.set_up_logging_handlers()
logger = log.LOGGER
logger.info("test_artemis")
Expand Down

0 comments on commit 484fd0d

Please sign in to comment.