diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-05 17:07:39 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-05 17:07:39 +0000 |
commit | b295167c5a3a4d880b75f8bfd9aa0b296b876bd3 (patch) | |
tree | aad815bde3c50071fba08af239ac7bf8bb1c0f0d /test/test_template.py | |
parent | 4c606b484bd2c2a191b4ce0d6a28061d33b0e66c (diff) | |
download | mako-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.py | 53 |
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"/> |