Skip to content
Snippets Groups Projects

Draft: No story: wf_monitor improvements

Open Daniel Lopez-Sanders requested to merge no-story-wf-monitor-improvements into development
1 unresolved thread
Files
3
@@ -19,15 +19,12 @@
This module is kept so as not to break tests; mocks remain
in case they may be useful Some Fine Day.
"""
# pylint: disable=W1203
import logging
import sys
from typing import Dict
from unittest.mock import patch
import pytest
import wf_monitor.monitor
from messaging.router import Router
from wf_monitor.monitor import WorkflowMonitor
@@ -38,31 +35,28 @@ logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler(sys.stdout))
def mock_send_message(message: Dict[str, str], mock_router: Router):
def mock_send_message(message: dict[str, str], mock_router: Router):
"""
Mocked version of wf_monitor.monitor.send_event without any AMQP connections being made
Mocked version of wf_monitor.monitor.send_event without any AMQP connections being made.
:param message: Workflow event being "sent"
:param mock_router: Mock router
:param message: The workflow event being "sent".
:param mock_router: A mock router.
"""
logger.info(f"Pretending to send message: {message} from mock router: {mock_router}")
logger.info("Pretending to send message: %s from mock router: %s", message, mock_router)
wf_monitor.monitor.send_message = mock_send_message
def mock_monitor_factory(path_to_log: str, timeout: int = 60) -> WorkflowMonitor:
def mock_monitor_factory_htc_log(path_to_log: str, timeout: int = 60) -> WorkflowMonitor:
"""
Factory function that creates a WorkflowMonitor object with external
dependencies mocked away
dependencies mocked away. Note: is_dag is set to False, so it will process logs as HTC logs.
:param path_to_log: Path to log file that will be monitored
:param timeout: Timeout in seconds
:param path_to_log: Path to log file that will be monitored.
:param timeout: Timeout in seconds. The default is 60.
:return: Mocked WorkflowMonitor
"""
with patch("wf_monitor.monitor.Router"):
return WorkflowMonitor(path_to_log, -1, timeout)
return WorkflowMonitor(path_to_log, -1, False, timeout)
@pytest.mark.skip("This is here just to avoid breaking build")
Loading