This is an automated email from the ASF dual-hosted git repository.
vincbeck 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 f2dd350288 Resolve `GlueJobTrigger` serialization bug causing verbose
to always be True (#43622)
f2dd350288 is described below
commit f2dd3502887e9f085e52de0e38692c1c173b3557
Author: Jim Baldwin <[email protected]>
AuthorDate: Wed Nov 6 03:01:17 2024 +1100
Resolve `GlueJobTrigger` serialization bug causing verbose to always be
True (#43622)
---
.../airflow/providers/amazon/aws/triggers/glue.py | 2 +-
providers/tests/amazon/aws/operators/test_glue.py | 25 ++++++++++++++++++++++
providers/tests/amazon/aws/triggers/test_glue.py | 18 ++++++++++++++++
3 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/providers/src/airflow/providers/amazon/aws/triggers/glue.py
b/providers/src/airflow/providers/amazon/aws/triggers/glue.py
index 3c966f6032..c4b0c38c66 100644
--- a/providers/src/airflow/providers/amazon/aws/triggers/glue.py
+++ b/providers/src/airflow/providers/amazon/aws/triggers/glue.py
@@ -62,7 +62,7 @@ class GlueJobCompleteTrigger(BaseTrigger):
{
"job_name": self.job_name,
"run_id": self.run_id,
- "verbose": str(self.verbose),
+ "verbose": self.verbose,
"aws_conn_id": self.aws_conn_id,
"job_poll_interval": self.job_poll_interval,
},
diff --git a/providers/tests/amazon/aws/operators/test_glue.py
b/providers/tests/amazon/aws/operators/test_glue.py
index 8243940e69..d01e807884 100644
--- a/providers/tests/amazon/aws/operators/test_glue.py
+++ b/providers/tests/amazon/aws/operators/test_glue.py
@@ -182,6 +182,31 @@ class TestGlueJobOperator:
)
assert glue.job_name == JOB_NAME
+ @mock.patch.object(GlueJobHook, "print_job_logs")
+ @mock.patch.object(GlueJobHook, "get_job_state")
+ @mock.patch.object(GlueJobHook, "initialize_job")
+ @mock.patch.object(GlueJobHook, "get_conn")
+ @mock.patch.object(S3Hook, "load_file")
+ def test_execute_without_verbose_logging(
+ self, mock_load_file, mock_get_conn, mock_initialize_job,
mock_get_job_state, mock_print_job_logs
+ ):
+ glue = GlueJobOperator(
+ task_id=TASK_ID,
+ job_name=JOB_NAME,
+ script_location="s3_uri",
+ s3_bucket="bucket_name",
+ iam_role_name="role_arn",
+ verbose=False,
+ )
+ mock_initialize_job.return_value = {"JobRunState": "RUNNING",
"JobRunId": JOB_RUN_ID}
+ mock_get_job_state.return_value = "SUCCEEDED"
+
+ glue.execute(mock.MagicMock())
+
+ mock_initialize_job.assert_called_once_with({}, {})
+ mock_print_job_logs.assert_not_called()
+ assert glue.job_name == JOB_NAME
+
@mock.patch.object(GlueJobHook, "print_job_logs")
@mock.patch.object(GlueJobHook, "job_completion")
@mock.patch.object(GlueJobHook, "initialize_job")
diff --git a/providers/tests/amazon/aws/triggers/test_glue.py
b/providers/tests/amazon/aws/triggers/test_glue.py
index e39e38d8b7..2f4830bb86 100644
--- a/providers/tests/amazon/aws/triggers/test_glue.py
+++ b/providers/tests/amazon/aws/triggers/test_glue.py
@@ -82,6 +82,24 @@ class TestGlueJobTrigger:
assert get_state_mock.call_count == 3
+ def test_serialization(self):
+ trigger = GlueJobCompleteTrigger(
+ job_name="job_name",
+ run_id="JobRunId",
+ verbose=False,
+ aws_conn_id="aws_conn_id",
+ job_poll_interval=0.1,
+ )
+ classpath, kwargs = trigger.serialize()
+ assert classpath ==
"airflow.providers.amazon.aws.triggers.glue.GlueJobCompleteTrigger"
+ assert kwargs == {
+ "job_name": "job_name",
+ "run_id": "JobRunId",
+ "verbose": False,
+ "aws_conn_id": "aws_conn_id",
+ "job_poll_interval": 0.1,
+ }
+
class TestGlueCatalogPartitionSensorTrigger:
@pytest.mark.asyncio