summaryrefslogtreecommitdiff
path: root/test/test_template.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-05 17:07:39 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-05 17:07:39 +0000
commitb295167c5a3a4d880b75f8bfd9aa0b296b876bd3 (patch)
treeaad815bde3c50071fba08af239ac7bf8bb1c0f0d /test/test_template.py
parent4c606b484bd2c2a191b4ce0d6a28061d33b0e66c (diff)
downloadmako-b295167c5a3a4d880b75f8bfd9aa0b296b876bd3.tar.gz
- The <%page args> tag can now be used in a base
inheriting template - the full set of render() arguments are passed down through the inherits chain. Undeclared arguments go into **pageargs as usual. [ticket:116]
Diffstat (limited to 'test/test_template.py')
-rw-r--r--test/test_template.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/test_template.py b/test/test_template.py
index 204ee3b..c738012 100644
--- a/test/test_template.py
+++ b/test/test_template.py
@@ -369,7 +369,60 @@ class PageArgsTest(TemplateTest):
assert False
except TypeError, e:
assert True
+
+ def test_inherits(self):
+ lookup = TemplateLookup()
+ lookup.put_string("base.tmpl",
+ """
+ <%page args="bar" />
+ ${bar}
+ ${pageargs['foo']}
+ ${self.body(**pageargs)}
+ """
+ )
+ lookup.put_string("index.tmpl", """
+ <%inherit file="base.tmpl" />
+ <%page args="variable" />
+ ${variable}
+ """)
+ self._do_test(
+ lookup.get_template("index.tmpl"),
+ "bar foo var",
+ filters=flatten_result,
+ template_args={'variable':'var', 'bar':'bar', 'foo':'foo'}
+
+ )
+
+ def test_includes(self):
+ lookup = TemplateLookup()
+ lookup.put_string("incl1.tmpl",
+ """
+ <%page args="bar" />
+ ${bar}
+ ${pageargs['foo']}
+ """
+ )
+ lookup.put_string("incl2.tmpl",
+ """
+ ${pageargs}
+ """
+ )
+ lookup.put_string("index.tmpl", """
+ <%include file="incl1.tmpl" args="**pageargs"/>
+ <%page args="variable" />
+ ${variable}
+ <%include file="incl2.tmpl" />
+ """)
+
+ self._do_test(
+ lookup.get_template("index.tmpl"),
+ "bar foo var {}",
+ filters=flatten_result,
+ template_args={'variable':'var', 'bar':'bar', 'foo':'foo'}
+
+ )
+
def test_with_context(self):
template = Template("""
<%page args="x, y, z=7"/>