diff options
author | David Lord <davidism@gmail.com> | 2021-03-30 16:38:04 -0700 |
---|---|---|
committer | David Lord <davidism@gmail.com> | 2021-03-31 16:09:51 -0700 |
commit | 38e45fead3a93e144d974a648d56b2a468a15812 (patch) | |
tree | 213f237f74457032157b2e7e0a2df63d97e7324c /tests | |
parent | 40a312e80f4f1b25f201293c3f1a840a1b88191d (diff) | |
download | jinja2-38e45fead3a93e144d974a648d56b2a468a15812.tar.gz |
more detailed docs about globals
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_regression.py | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/tests/test_regression.py b/tests/test_regression.py index 945061a..a49356b 100644 --- a/tests/test_regression.py +++ b/tests/test_regression.py @@ -717,36 +717,31 @@ End""" # show up outside of it assert tmpl.render() == "42\n0\n24\n0\n42\n1\n24\n1\n42" - def test_cached_extends(self): + @pytest.mark.parametrize("op", ["extends", "include"]) + def test_cached_extends(self, op): env = Environment( loader=DictLoader( - {"parent": "{{ foo }}", "child": "{% extends 'parent' %}"} + {"base": "{{ x }} {{ y }}", "main": f"{{% {op} 'base' %}}"} ) ) - tmpl = env.get_template("child", globals={"foo": "bar"}) - assert tmpl.render() == "bar" + env.globals["x"] = "x" + env.globals["y"] = "y" - tmpl = env.get_template("parent", globals={"foo": 42}) - assert tmpl.render() == "42" + # template globals overlay env globals + tmpl = env.get_template("main", globals={"x": "bar"}) + assert tmpl.render() == "bar y" - tmpl = env.get_template("child") - assert tmpl.render() == "bar" - - tmpl = env.get_template("parent") - assert tmpl.render() == "42" - - def test_cached_includes(self): - env = Environment( - loader=DictLoader({"base": "{{ foo }}", "main": "{% include 'base' %}"}) - ) - tmpl = env.get_template("main", globals={"foo": "bar"}) - assert tmpl.render() == "bar" + # base was loaded indirectly, it just has env globals + tmpl = env.get_template("base") + assert tmpl.render() == "x y" - tmpl = env.get_template("base", globals={"foo": 42}) - assert tmpl.render() == "42" + # set template globals for base, no longer uses env globals + tmpl = env.get_template("base", globals={"x": 42}) + assert tmpl.render() == "42 y" + # templates are cached, they keep template globals set earlier tmpl = env.get_template("main") - assert tmpl.render() == "bar" + assert tmpl.render() == "bar y" tmpl = env.get_template("base") - assert tmpl.render() == "42" + assert tmpl.render() == "42 y" |