diff --git a/laborious/activities/opc.py b/laborious/activities/opc.py index e39a35d..7a0c28f 100644 --- a/laborious/activities/opc.py +++ b/laborious/activities/opc.py @@ -152,8 +152,7 @@ class OPC(BaseActivity): if local_success: self.info( f"Prediction data written to OPC server {server_id} for tag {tag}.", metadata) - else: - success = success and local_success + success = success and local_success if 'confidence_tags' in config: for tag, tag_config in config['confidence_tags'].items(): @@ -168,8 +167,7 @@ class OPC(BaseActivity): if local_success: self.info( f"Confidence data written to OPC server {server_id} for tag {tag}.", metadata) - else: - success = success and local_success + success = success and local_success return self.process_confidence(data, success, metadata) diff --git a/laborious/utils/repository/opc_repository.py b/laborious/utils/repository/opc_repository.py index 212ea5d..730ec15 100644 --- a/laborious/utils/repository/opc_repository.py +++ b/laborious/utils/repository/opc_repository.py @@ -93,7 +93,6 @@ class OpcRepository(): ) self.client.secure_channel_timeout = 10000000 self.client.session_timeout = 10000000 - self.pod_id = pod_id def connect(self) -> tuple[bool, dict[str, Any]]: """ diff --git a/tests/laborious/activities/test_opc.py b/tests/laborious/activities/test_opc.py index 6540a16..37ae391 100644 --- a/tests/laborious/activities/test_opc.py +++ b/tests/laborious/activities/test_opc.py @@ -91,6 +91,7 @@ def test___init__(mock_send_notification, mock_opc_repository): server_cert_path="", notification_handler=mock_notification_handler, reconnection_interval=60, + pod_id='localhost' ), ]) mock_opc_repository.assert_has_calls([ @@ -104,6 +105,7 @@ def test___init__(mock_send_notification, mock_opc_repository): server_cert_path="", notification_handler=mock_notification_handler, reconnection_interval=60, + pod_id='localhost' ) ]) diff --git a/tests/laborious/utils/repository/test_opc_repository.py b/tests/laborious/utils/repository/test_opc_repository.py index c399139..f80cf40 100644 --- a/tests/laborious/utils/repository/test_opc_repository.py +++ b/tests/laborious/utils/repository/test_opc_repository.py @@ -263,18 +263,36 @@ def test_write_data_invalid_data_type(opc_repository, mock_client): assert error_data.get('attachment_content') is None -def test_write_data(opc_repository, mock_client): +@patch('laborious.utils.repository.opc_repository.metrics') +def test_write_data(mock_metrics, opc_repository, mock_client): opc_repository.validate_connection = MagicMock(return_value=(True, {})) opc_repository.client = mock_client mock_node = MagicMock() mock_client.get_node.return_value = mock_node opc_repository.write_data("ns=2;s=TestNode", 42.0, - "float", opc_repository.logger, metadata) + "float", opc_repository.logger, metadata['metadata']) mock_client.get_node.assert_called_once_with("ns=2;s=TestNode") mock_node.write_value.assert_called_once() + mock_metrics.PREDICTION_OPC_WRITING_COUNT.labels.assert_called_once_with( + pod_id=opc_repository.pod_id, + model_name=metadata['metadata']['model_name'], + pipeline_name=metadata['metadata']['workflow_name'], + opc_server_id=opc_repository.id + ) + mock_metrics.PREDICTION_OPC_WRITING_COUNT.labels.return_value.inc.assert_called_once_with() + + mock_metrics.PREDICTION_OPC_WRITING_RESPONSE_TIME_MONITOR.labels.assert_called_once_with( + pod_id=opc_repository.pod_id, + model_name=metadata['metadata']['model_name'], + pipeline_name=metadata['metadata']['workflow_name'], + opc_server_id=opc_repository.id + ) + mock_metrics.PREDICTION_OPC_WRITING_RESPONSE_TIME_MONITOR.labels.return_value.observe.assert_called_once_with( + ANY) + def test_write_data_write_value_failed(opc_repository, mock_client): opc_repository.validate_connection = MagicMock(return_value=(True, {}))