|
86 | 86 | from airflow.utils.task_group import TaskGroup
|
87 | 87 | from airflow.utils.xcom import XCOM_RETURN_KEY
|
88 | 88 |
|
| 89 | +from tests_common.test_utils.config import conf_vars |
89 | 90 | from tests_common.test_utils.mock_operators import (
|
90 | 91 | AirflowLink2,
|
91 | 92 | CustomOperator,
|
|
154 | 155 | },
|
155 | 156 | "is_paused_upon_creation": False,
|
156 | 157 | "dag_id": "simple_dag",
|
| 158 | + "disable_bundle_versioning": False, |
157 | 159 | "doc_md": "### DAG Tutorial Documentation",
|
158 | 160 | "fileloc": None,
|
159 | 161 | "_processor_dags_folder": f"{repo_root}/tests/dags",
|
@@ -2068,6 +2070,38 @@ def test_dag_on_failure_callback_roundtrip(self, passed_failure_callback, expect
|
2068 | 2070 |
|
2069 | 2071 | assert deserialized_dag.has_on_failure_callback is expected_value
|
2070 | 2072 |
|
| 2073 | + @pytest.mark.parametrize( |
| 2074 | + "dag_arg, conf_arg, expected", |
| 2075 | + [ |
| 2076 | + (True, "True", True), |
| 2077 | + (True, "False", True), |
| 2078 | + (False, "True", False), |
| 2079 | + (False, "False", False), |
| 2080 | + (None, "True", True), |
| 2081 | + (None, "False", False), |
| 2082 | + ], |
| 2083 | + ) |
| 2084 | + def test_dag_disable_bundle_versioning_roundtrip(self, dag_arg, conf_arg, expected): |
| 2085 | + """ |
| 2086 | + Test that when disable_bundle_versioning is passed to the DAG, has_disable_bundle_versioning is stored |
| 2087 | + in Serialized JSON blob. And when it is de-serialized dag.has_disable_bundle_versioning is set to True. |
| 2088 | +
|
| 2089 | + When the callback is not set, has_disable_bundle_versioning should not be stored in Serialized blob |
| 2090 | + and so default to False on de-serialization |
| 2091 | + """ |
| 2092 | + with conf_vars({("dag_processor", "disable_bundle_versioning"): conf_arg}): |
| 2093 | + kwargs = {} |
| 2094 | + kwargs["disable_bundle_versioning"] = dag_arg |
| 2095 | + dag = DAG( |
| 2096 | + dag_id="test_dag_disable_bundle_versioning_roundtrip", |
| 2097 | + schedule=None, |
| 2098 | + **kwargs, |
| 2099 | + ) |
| 2100 | + BaseOperator(task_id="simple_task", dag=dag, start_date=datetime(2019, 8, 1)) |
| 2101 | + serialized_dag = SerializedDAG.to_dict(dag) |
| 2102 | + deserialized_dag = SerializedDAG.from_dict(serialized_dag) |
| 2103 | + assert deserialized_dag.disable_bundle_versioning is expected |
| 2104 | + |
2071 | 2105 | @pytest.mark.parametrize(
|
2072 | 2106 | "object_to_serialized, expected_output",
|
2073 | 2107 | [
|
|
0 commit comments