You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ka...@apache.org on 2020/12/29 23:49:49 UTC
[airflow] branch v1-10-stable updated: Fix Jinja undefined upgrade
check for non-templated objects (#13373)
This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch v1-10-stable
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v1-10-stable by this push:
new 748d05f Fix Jinja undefined upgrade check for non-templated objects (#13373)
748d05f is described below
commit 748d05f519c0e5427d2a46763591f03697c4d585
Author: Madison Bowden <52...@users.noreply.github.com>
AuthorDate: Tue Dec 29 15:49:33 2020 -0800
Fix Jinja undefined upgrade check for non-templated objects (#13373)
---
airflow/upgrade/rules/undefined_jinja_varaibles.py | 9 +++++----
tests/upgrade/rules/test_undefined_jinja_varaibles.py | 8 ++++++--
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/airflow/upgrade/rules/undefined_jinja_varaibles.py b/airflow/upgrade/rules/undefined_jinja_varaibles.py
index b97cfbc..100a31b 100644
--- a/airflow/upgrade/rules/undefined_jinja_varaibles.py
+++ b/airflow/upgrade/rules/undefined_jinja_varaibles.py
@@ -48,9 +48,6 @@ The user should do either of the following to fix this -
if isinstance(rendered_content, six.string_types):
return set(re.findall(r"{{(.*?)}}", rendered_content))
- elif isinstance(rendered_content, (int, float, bool)):
- return set()
-
elif isinstance(rendered_content, (tuple, list, set)):
debug_error_messages = set()
for element in rendered_content:
@@ -63,11 +60,15 @@ The user should do either of the following to fix this -
debug_error_messages.update(self._check_rendered_content(value))
return debug_error_messages
- else:
+ elif hasattr(rendered_content, "template_fields"):
if seen_oids is None:
seen_oids = set()
return self._nested_check_rendered(rendered_content, seen_oids)
+ else:
+ # Rendered content is not actually rendered
+ return set()
+
def _nested_check_rendered(self, rendered_content, seen_oids):
debug_error_messages = set()
if id(rendered_content) not in seen_oids:
diff --git a/tests/upgrade/rules/test_undefined_jinja_varaibles.py b/tests/upgrade/rules/test_undefined_jinja_varaibles.py
index 973801a..96cb30c 100644
--- a/tests/upgrade/rules/test_undefined_jinja_varaibles.py
+++ b/tests/upgrade/rules/test_undefined_jinja_varaibles.py
@@ -19,7 +19,6 @@ from tempfile import mkdtemp
from unittest import TestCase
import jinja2
-import pytest
from airflow import DAG
from airflow.models import DagBag
@@ -67,6 +66,12 @@ class TestUndefinedJinjaVariablesRule(TestCase):
"float": "{{ params.float }}",
"string": "{{ params.string }}",
"boolean": "{{ params.boolean }}",
+ "integer_direct": 1,
+ "float_direct": 1.0,
+ "string_direct": "test_string",
+ "boolean_direct": True,
+ "none_direct": None,
+ "object_direct": object(),
},
params={
"integer": 1,
@@ -156,7 +161,6 @@ class TestUndefinedJinjaVariablesRule(TestCase):
assert len(messages) == 0
- @pytest.mark.quarantined
def test_invalid_check(self):
dagbag = DagBag(dag_folder=self.empty_dir, include_examples=False)
dagbag.dags[self.invalid_dag.dag_id] = self.invalid_dag