From 948fecc44493ec10c911309aa431a027cc9a4819 Mon Sep 17 00:00:00 2001 From: vitor-aignosi Date: Tue, 10 Jun 2025 11:51:27 -0300 Subject: [PATCH] SIENTIAPDE-1097 Refactor filter configuration keys from 'POLICY' to 'policy' for consistency --- laborious/activities/gates.py | 4 ++-- tests/laborious/activities/test_gates.py | 10 +++++----- .../utils/filters/test_conditional_filters.py | 4 ++-- .../workflows/subworkflows/test_prediction_process.py | 3 ++- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/laborious/activities/gates.py b/laborious/activities/gates.py index e78c42b..4b183a0 100644 --- a/laborious/activities/gates.py +++ b/laborious/activities/gates.py @@ -84,7 +84,7 @@ class Gates(BaseActivity): if input_filter_functions[fil](data, config['config']): self.logger.debug( f"Data not passed the input filter {fil}:{config}") - filter_output.append(config['POLICY']) + filter_output.append(config['policy']) except Exception as e: trace = traceback.format_exc() self.notification_handler.build_and_send_notification( @@ -201,7 +201,7 @@ class Gates(BaseActivity): continue try: if mlflow_content_filter_functions[fil](data, config): - filter_output.append(config['POLICY']) + filter_output.append(config['policy']) self.notification_handler.build_and_send_notification( notification_id=f"{gate_type.upper()}_GATE_CONTENT_FILTER__{fil}", message=f"Data not passed the content filter {fil}:{config}", diff --git a/tests/laborious/activities/test_gates.py b/tests/laborious/activities/test_gates.py index 6b61c81..28ec1d2 100644 --- a/tests/laborious/activities/test_gates.py +++ b/tests/laborious/activities/test_gates.py @@ -42,7 +42,7 @@ async def test_input_gate_filter_exception(mock_input_filter_functions, gates_ac side_effect=Exception("Test error")) input_data = { 'filters': { - 'EMPTY_DATA': {'POLICY': 'STOP'} + 'EMPTY_DATA': {'policy': 'STOP', 'config': {}} }, 'data': {'value': []}, 'path_priority': ['STOP', 'CONTINUE', 'REPEAT'] @@ -55,7 +55,7 @@ async def test_input_gate_filter_exception(mock_input_filter_functions, gates_ac assert result == (None, 0, "") gates_activity.notification_handler.build_and_send_notification.assert_called_once_with( notification_id="INTPUT_GATE_ERROR__EMPTY_DATA", - message="Error in filter EMPTY_DATA:{'POLICY': 'STOP'}: \n Test error", + message="Error in filter EMPTY_DATA:{'policy': 'STOP', 'config': {}}: \n Test error", block="input_gate", level=NotificationLevel.ERROR, attachment_content=ANY @@ -84,7 +84,7 @@ async def test_input_gate_with_filter(gates_activity): # Arrange input_data = { 'filters': { - 'EMPTY_DATA': {'POLICY': 'STOP'} + 'EMPTY_DATA': {'policy': 'STOP', 'config': {}} }, 'data': {'value': []}, 'path_priority': ['STOP', 'CONTINUE', 'REPEAT'] @@ -171,7 +171,7 @@ async def test_mlflow_response_gate_with_filter(gates_activity): # Arrange input_data = { 'filters': { - 'API_ERROR': {'POLICY': 'STOP'} + 'API_ERROR': {'policy': 'STOP'} }, 'data': { 'success': False, @@ -273,7 +273,7 @@ async def test_mlflow_content_gate_with_filter(gates_activity): # Arrange input_data = { 'filters': { - 'NAN_VALUES': {'POLICY': 'STOP'} + 'NAN_VALUES': {'policy': 'STOP', 'config': {}} }, 'data': {'value': [None, None, None]}, 'type': 'test', diff --git a/tests/laborious/utils/filters/test_conditional_filters.py b/tests/laborious/utils/filters/test_conditional_filters.py index edcbcd6..405bc9b 100644 --- a/tests/laborious/utils/filters/test_conditional_filters.py +++ b/tests/laborious/utils/filters/test_conditional_filters.py @@ -10,14 +10,14 @@ def test_filter_specific_variables_null_values(): assert filter_specific_variables_null_values( DataFrame( {'variable': ['variable1', 'variable2'], 'value': [1, 2]}), - config={'VARIABLES': ['variable2']}) is False + config={'variables': ['variable2']}) is False def test_filter_specific_variables_null_values_with_null_values(): assert filter_specific_variables_null_values( DataFrame( {'variable': ['variable1', 'variable2'], 'value': [1, None]}), - config={'VARIABLES': ['variable2']}) is True + config={'variables': ['variable2']}) is True def test_filter_empty_data(): diff --git a/tests/laborious/workflows/subworkflows/test_prediction_process.py b/tests/laborious/workflows/subworkflows/test_prediction_process.py index 4318379..560565e 100644 --- a/tests/laborious/workflows/subworkflows/test_prediction_process.py +++ b/tests/laborious/workflows/subworkflows/test_prediction_process.py @@ -426,7 +426,8 @@ async def test_path_flag_handler_repeat(workflow_mock, prediction_process): { 'schema': schema, 'table_name': table_name, - 'model_id': model + 'model': model, + 'last_timestamp': last_timestamp, }, retry_policy=ANY, start_to_close_timeout=ANY