This is an automated email from the ASF dual-hosted git repository.
potiuk 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 57b12fe0ce Resolve dag serialization deprecations in tests (#40006)
57b12fe0ce is described below
commit 57b12fe0ce14487188da2c12a7bbfa1108008301
Author: Gopal Dirisala <[email protected]>
AuthorDate: Sun Jun 2 13:49:42 2024 +0530
Resolve dag serialization deprecations in tests (#40006)
---
tests/deprecations_ignore.yml | 3 ---
tests/serialization/test_dag_serialization.py | 36 ++++++++++++++++++++++-----
tests/serialization/test_pydantic_models.py | 4 ++-
3 files changed, 33 insertions(+), 10 deletions(-)
diff --git a/tests/deprecations_ignore.yml b/tests/deprecations_ignore.yml
index b89b41355a..541d89898f 100644
--- a/tests/deprecations_ignore.yml
+++ b/tests/deprecations_ignore.yml
@@ -136,9 +136,6 @@
# Serialization
-
tests/serialization/test_dag_serialization.py::TestStringifiedDAGs::test_custom_dep_detector
--
tests/serialization/test_dag_serialization.py::TestStringifiedDAGs::test_dag_params_roundtrip
--
tests/serialization/test_dag_serialization.py::TestStringifiedDAGs::test_task_params_roundtrip
--
tests/serialization/test_pydantic_models.py::test_serializing_pydantic_dataset_event
# WWW
diff --git a/tests/serialization/test_dag_serialization.py
b/tests/serialization/test_dag_serialization.py
index fbefe71d28..093b7fba76 100644
--- a/tests/serialization/test_dag_serialization.py
+++ b/tests/serialization/test_dag_serialization.py
@@ -45,7 +45,7 @@ import airflow
from airflow.datasets import Dataset
from airflow.decorators import teardown
from airflow.decorators.base import DecoratedOperator
-from airflow.exceptions import AirflowException, SerializationError
+from airflow.exceptions import AirflowException, RemovedInAirflow3Warning,
SerializationError
from airflow.hooks.base import BaseHook
from airflow.models.baseoperator import BaseOperator
from airflow.models.connection import Connection
@@ -934,7 +934,14 @@ class TestStringifiedDAGs:
"""
Test that params work both on Serialized DAGs & Tasks
"""
- dag = DAG(dag_id="simple_dag", params=val)
+ if val and any([True for k, v in val.items() if isinstance(v, set)]):
+ with pytest.warns(
+ RemovedInAirflow3Warning,
+ match="The use of non-json-serializable params is deprecated
and will be removed in a future release",
+ ):
+ dag = DAG(dag_id="simple_dag", params=val)
+ else:
+ dag = DAG(dag_id="simple_dag", params=val)
BaseOperator(task_id="simple_task", dag=dag, start_date=datetime(2019,
8, 1))
serialized_dag_json = SerializedDAG.to_json(dag)
@@ -943,7 +950,15 @@ class TestStringifiedDAGs:
assert "params" in serialized_dag["dag"]
- deserialized_dag = SerializedDAG.from_dict(serialized_dag)
+ if val and any([True for k, v in val.items() if isinstance(v, set)]):
+ with pytest.warns(
+ RemovedInAirflow3Warning,
+ match="The use of non-json-serializable params is deprecated
and will be removed in a future release",
+ ):
+ deserialized_dag = SerializedDAG.from_dict(serialized_dag)
+
+ else:
+ deserialized_dag = SerializedDAG.from_dict(serialized_dag)
deserialized_simple_task = deserialized_dag.task_dict["simple_task"]
assert expected_val == deserialized_dag.params.dump()
assert expected_val == deserialized_simple_task.params.dump()
@@ -1011,15 +1026,24 @@ class TestStringifiedDAGs:
Test that params work both on Serialized DAGs & Tasks
"""
dag = DAG(dag_id="simple_dag")
- BaseOperator(task_id="simple_task", dag=dag, params=val,
start_date=datetime(2019, 8, 1))
+ if val and any([True for k, v in val.items() if isinstance(v, set)]):
+ with pytest.warns(
+ RemovedInAirflow3Warning,
+ match="The use of non-json-serializable params is deprecated
and will be removed in a future release",
+ ):
+ BaseOperator(task_id="simple_task", dag=dag, params=val,
start_date=datetime(2019, 8, 1))
+ serialized_dag = SerializedDAG.to_dict(dag)
+ deserialized_dag = SerializedDAG.from_dict(serialized_dag)
+ else:
+ BaseOperator(task_id="simple_task", dag=dag, params=val,
start_date=datetime(2019, 8, 1))
+ serialized_dag = SerializedDAG.to_dict(dag)
+ deserialized_dag = SerializedDAG.from_dict(serialized_dag)
- serialized_dag = SerializedDAG.to_dict(dag)
if val:
assert "params" in serialized_dag["dag"]["tasks"][0]["__var"]
else:
assert "params" not in serialized_dag["dag"]["tasks"][0]["__var"]
- deserialized_dag = SerializedDAG.from_dict(serialized_dag)
deserialized_simple_task = deserialized_dag.task_dict["simple_task"]
assert expected_val == deserialized_simple_task.params.dump()
diff --git a/tests/serialization/test_pydantic_models.py
b/tests/serialization/test_pydantic_models.py
index 522399d1fc..048faebf54 100644
--- a/tests/serialization/test_pydantic_models.py
+++ b/tests/serialization/test_pydantic_models.py
@@ -215,12 +215,14 @@ def test_serializing_pydantic_dataset_event(session,
create_task_instance, creat
with_dagrun_type=DagRunType.MANUAL,
session=session,
)
+ execution_date = timezone.utcnow()
dr = dag.create_dagrun(
run_id="test2",
run_type=DagRunType.DATASET_TRIGGERED,
- execution_date=timezone.utcnow(),
+ execution_date=execution_date,
state=None,
session=session,
+ data_interval=(execution_date, execution_date),
)
ds1_event = DatasetEvent(dataset_id=1)
ds2_event_1 = DatasetEvent(dataset_id=2)