This is an automated email from the ASF dual-hosted git repository. ferruzzi pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push: new 9ea78d9d72 Fix default value for aws batch operator retry strategy (#39608) 9ea78d9d72 is described below commit 9ea78d9d726d9ddb6109a7fba0c3a838f8a05610 Author: 0x26res <arthur.and...@gmail.com> AuthorDate: Wed May 15 22:05:24 2024 +0100 Fix default value for aws batch operator retry strategy (#39608) Co-authored-by: aandres <aand...@tradewelltech.co> --- airflow/providers/amazon/aws/operators/batch.py | 4 +-- tests/providers/amazon/aws/operators/test_batch.py | 32 ++++++++++++++++++++-- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/airflow/providers/amazon/aws/operators/batch.py b/airflow/providers/amazon/aws/operators/batch.py index afca0fc615..00b6287145 100644 --- a/airflow/providers/amazon/aws/operators/batch.py +++ b/airflow/providers/amazon/aws/operators/batch.py @@ -206,9 +206,7 @@ class BatchOperator(BaseOperator): self.scheduling_priority_override = scheduling_priority_override self.array_properties = array_properties self.parameters = parameters or {} - self.retry_strategy = retry_strategy or {} - if not self.retry_strategy.get("attempts", None): - self.retry_strategy["attempts"] = 1 + self.retry_strategy = retry_strategy self.waiters = waiters self.tags = tags or {} self.wait_for_completion = wait_for_completion diff --git a/tests/providers/amazon/aws/operators/test_batch.py b/tests/providers/amazon/aws/operators/test_batch.py index 2ac9557813..f769c1baa8 100644 --- a/tests/providers/amazon/aws/operators/test_batch.py +++ b/tests/providers/amazon/aws/operators/test_batch.py @@ -20,6 +20,7 @@ from __future__ import annotations from unittest import mock from unittest.mock import patch +import botocore.client import pytest from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning, TaskDeferred @@ -64,7 +65,7 @@ class TestBatchOperator: max_retries=self.MAX_RETRIES, status_retries=self.STATUS_RETRIES, parameters=None, - retry_strategy=None, + retry_strategy={"attempts": 1}, container_overrides={}, array_properties=None, aws_conn_id="airflow_test", @@ -112,6 +113,34 @@ class TestBatchOperator: self.get_client_type_mock.assert_called_once_with(region_name="eu-west-1") + def test_init_defaults(self): + """Test constructor default values""" + batch_job = BatchOperator( + task_id="task", + job_name=JOB_NAME, + job_queue="queue", + job_definition="hello-world", + ) + assert batch_job.job_id is None + assert batch_job.job_name == JOB_NAME + assert batch_job.job_queue == "queue" + assert batch_job.job_definition == "hello-world" + assert batch_job.waiters is None + assert batch_job.hook.max_retries == 4200 + assert batch_job.hook.status_retries == 10 + assert batch_job.parameters == {} + assert batch_job.retry_strategy is None + assert batch_job.container_overrides is None + assert batch_job.array_properties is None + assert batch_job.node_overrides is None + assert batch_job.share_identifier is None + assert batch_job.scheduling_priority_override is None + assert batch_job.hook.region_name is None + assert batch_job.hook.aws_conn_id is None + assert issubclass(type(batch_job.hook.client), botocore.client.BaseClient) + assert batch_job.tags == {} + assert batch_job.wait_for_completion is True + def test_template_fields_overrides(self): assert self.batch.template_fields == ( "job_id", @@ -238,7 +267,6 @@ class TestBatchOperator: "jobName": JOB_NAME, "jobDefinition": "hello-world", "parameters": {}, - "retryStrategy": {"attempts": 1}, "tags": {}, } if override == "overrides":