john-jac commented on code in PR #66891:
URL: https://github.com/apache/airflow/pull/66891#discussion_r3244164924
##########
providers/amazon/tests/unit/amazon/aws/operators/test_mwaa_serverless.py:
##########
@@ -220,6 +221,61 @@ def test_template_fields(self):
validate_template_fields(self.operator)
+class TestMwaaServerlessDeleteWorkflowOperator:
+ def setup_method(self):
+ self.operator = MwaaServerlessDeleteWorkflowOperator(
+ task_id="delete_workflow",
+ workflow_arn=WORKFLOW_ARN,
+ )
+
+ @mock.patch.object(AwsBaseHook, "conn", new_callable=mock.PropertyMock)
+ def test_execute(self, mock_conn):
+ mock_client = mock.MagicMock()
+ mock_client.delete_workflow.return_value = {"WorkflowArn":
WORKFLOW_ARN}
+ mock_conn.return_value = mock_client
+
+ result = self.operator.execute({})
+
+
mock_client.delete_workflow.assert_called_once_with(WorkflowArn=WORKFLOW_ARN)
+ assert result == WORKFLOW_ARN
+
+ @mock.patch.object(AwsBaseHook, "conn", new_callable=mock.PropertyMock)
+ def test_execute_with_version(self, mock_conn):
+ op = MwaaServerlessDeleteWorkflowOperator(
+ task_id="delete_workflow",
+ workflow_arn=WORKFLOW_ARN,
+ workflow_version="abc123def456abc123def456abc123de",
+ )
+ mock_client = mock.MagicMock()
+ mock_client.delete_workflow.return_value = {
+ "WorkflowArn": WORKFLOW_ARN,
+ "WorkflowVersion": "abc123def456abc123def456abc123de",
+ }
+ mock_conn.return_value = mock_client
+
+ result = op.execute({})
+
+ mock_client.delete_workflow.assert_called_once_with(
+ WorkflowArn=WORKFLOW_ARN,
+ WorkflowVersion="abc123def456abc123def456abc123de",
+ )
+ assert result == WORKFLOW_ARN
+
+ @mock.patch.object(AwsBaseHook, "conn", new_callable=mock.PropertyMock)
+ def test_execute_not_found(self, mock_conn):
+ mock_client = mock.MagicMock()
+ mock_client.delete_workflow.side_effect = ClientError(
+ {"Error": {"Code": "ResourceNotFoundException", "Message": "not
found"}}, "DeleteWorkflow"
Review Comment:
nit: Strengthen the pytest.raises to match the specific error code:
> with pytest.raises(ClientError, match="ResourceNotFoundException"):
> self.operator.execute({})
>
This ensures the test validates the right error path, not just any
ClientError.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]