From 56122efefa2f9635254383eb5af3ac8ca8a2236c Mon Sep 17 00:00:00 2001 From: vitor-aignosi Date: Mon, 27 Oct 2025 08:17:57 -0300 Subject: [PATCH] SIENTIAPDE-1314 Enhance OPC Testing for Output Management - Refactored the test_manage_output_tags_failed function to use parameterization for improved test coverage of different side effects. - Added a new test_manage_output_tags_do_nothing to verify behavior when an invalid key is provided in the configuration, ensuring that no write operations are performed in this case. --- tests/laborious/activities/test_opc.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/tests/laborious/activities/test_opc.py b/tests/laborious/activities/test_opc.py index e9c9d74..c4c9051 100644 --- a/tests/laborious/activities/test_opc.py +++ b/tests/laborious/activities/test_opc.py @@ -299,8 +299,9 @@ async def test_manage_output_tags_success(opc): @mark.asyncio -async def test_manage_output_tags_failed(opc): - opc.write_data = AsyncMock(side_effect=[0.1, None]) +@mark.parametrize('side_effect', [[0.1, None], [None, 0.2]]) +async def test_manage_output_tags_failed(opc, side_effect): + opc.write_data = AsyncMock(side_effect=side_effect) data = DataFrame({'prediction': [0.75], 'prediction_confidence': [0.95]}) config = { 'prediction_tags': {'tag1': {'data_type': 'float'}}, @@ -313,7 +314,7 @@ async def test_manage_output_tags_failed(opc): metadata=metadata['metadata'], ) assert output_data is False - assert opc_metrics == {'tag1': 0.1, 'tag2': None} + assert opc_metrics == {'tag1': side_effect[0], 'tag2': side_effect[1]} opc.write_data.assert_has_calls( [ call( @@ -335,6 +336,19 @@ async def test_manage_output_tags_failed(opc): ] ) +@mark.asyncio +async def test_manage_output_tags_do_nothing(opc): + opc.write_data = AsyncMock(return_value=0.1) + data = DataFrame({'prediction': [0.75], 'prediction_confidence': [0.95]}) + config = { + '_invalid_key': {'tag1': {'data_type': 'float'}}, + } + output_data, opc_metrics = await opc.manage_output_tags( + server_id='server1', config=config, data=data, metadata=metadata['metadata'], + ) + assert output_data is True + assert opc_metrics == {} + opc.write_data.assert_not_called() @mark.asyncio @patch('laborious.activities.opc.DataFrame')