diff options
author | Chris Jerdonek <chris.jerdonek@gmail.com> | 2012-05-04 14:39:46 -0700 |
---|---|---|
committer | Chris Jerdonek <chris.jerdonek@gmail.com> | 2012-05-04 14:39:46 -0700 |
commit | f4ca152f335ef53b1469de338e4a2bf99f0bfde5 (patch) | |
tree | 0c33881072a9ed4162028f3ac4dd43b03983ec70 | |
parent | 8bc8baf31ae4869df1ca0ef3b9c8837d0a075d9d (diff) | |
parent | 83b7502e5ad6c8767707da7016b11ac0232649e2 (diff) | |
download | pystache-f4ca152f335ef53b1469de338e4a2bf99f0bfde5.tar.gz |
Merged branch 'hotfix-v0.5.2-rc.1-mixed-lambda-list' to master.
Fixed issue with list section values containing both lambdas and non-lambdas.
-rw-r--r-- | pystache/__init__.py | 2 | ||||
-rw-r--r-- | pystache/renderengine.py | 4 | ||||
-rw-r--r-- | pystache/tests/test_context.py | 10 | ||||
-rw-r--r-- | pystache/tests/test_renderengine.py | 15 | ||||
-rw-r--r-- | setup.py | 2 |
5 files changed, 24 insertions, 9 deletions
diff --git a/pystache/__init__.py b/pystache/__init__.py index d1fbdb1..7548c5b 100644 --- a/pystache/__init__.py +++ b/pystache/__init__.py @@ -10,4 +10,4 @@ from pystache.init import render, Renderer, TemplateSpec __all__ = ['render', 'Renderer', 'TemplateSpec'] -__version__ = '0.5.2-rc' # Also change in setup.py. +__version__ = '0.5.2-rc.1' # Also change in setup.py. diff --git a/pystache/renderengine.py b/pystache/renderengine.py index e1d57e4..bdbb30a 100644 --- a/pystache/renderengine.py +++ b/pystache/renderengine.py @@ -208,8 +208,8 @@ class RenderEngine(object): # # TODO: should we check the arity? new_template = element(template) - parsed_template = self._parse(new_template, delimiters=delims) - parts.append(parsed_template.render(context)) + new_parsed_template = self._parse(new_template, delimiters=delims) + parts.append(new_parsed_template.render(context)) continue context.push(element) diff --git a/pystache/tests/test_context.py b/pystache/tests/test_context.py index 0c5097b..d432428 100644 --- a/pystache/tests/test_context.py +++ b/pystache/tests/test_context.py @@ -408,18 +408,18 @@ class ContextStackTests(unittest.TestCase, AssertIsMixin, AssertStringMixin): def test_dot_notation__user_object(self): name = "foo.bar" stack = ContextStack({"foo": Attachable(bar="baz")}) - self.assertEquals(stack.get(name), "baz") + self.assertEqual(stack.get(name), "baz") # Works on multiple levels, too name = "a.b.c.d.e.f.g" A = Attachable stack = ContextStack({"a": A(b=A(c=A(d=A(e=A(f=A(g="w00t!"))))))}) - self.assertEquals(stack.get(name), "w00t!") + self.assertEqual(stack.get(name), "w00t!") def test_dot_notation__mixed_dict_and_obj(self): name = "foo.bar.baz.bak" stack = ContextStack({"foo": Attachable(bar={"baz": Attachable(bak=42)})}) - self.assertEquals(stack.get(name), 42) + self.assertEqual(stack.get(name), 42) def test_dot_notation__missing_attr_or_key(self): name = "foo.bar.baz.bak" @@ -460,11 +460,11 @@ class ContextStackTests(unittest.TestCase, AssertIsMixin, AssertStringMixin): # When any element in the path is callable, it should be automatically invoked stack = ContextStack({"foo": Attachable(bar=Attachable(baz=lambda: "Called!"))}) - self.assertEquals(stack.get(name), "Called!") + self.assertEqual(stack.get(name), "Called!") class Foo(object): def bar(self): return Attachable(baz='Baz') stack = ContextStack({"foo": Foo()}) - self.assertEquals(stack.get(name), "Baz") + self.assertEqual(stack.get(name), "Baz") diff --git a/pystache/tests/test_renderengine.py b/pystache/tests/test_renderengine.py index d7f6bf7..b13e246 100644 --- a/pystache/tests/test_renderengine.py +++ b/pystache/tests/test_renderengine.py @@ -517,6 +517,21 @@ class RenderTests(unittest.TestCase, AssertStringMixin): self._assert_render(u'<~bar~#bar#>', template, context) + def test_section__lambda__mixed_list(self): + """ + Test a mixed list of lambdas and non-lambdas as a section value. + + This test case is equivalent to a test submitted to the Mustache spec here: + + https://github.com/mustache/spec/pull/47 . + + """ + template = '<{{#lambdas}}foo{{/lambdas}}>' + context = {'foo': 'bar', + 'lambdas': [lambda text: "~{{%s}}~" % text, 1]} + + self._assert_render(u'<~bar~foo>', template, context) + def test_section__lambda__not_on_context_stack(self): """ Check that section lambdas are not pushed onto the context stack. @@ -72,7 +72,7 @@ else: # print("Using: version %s of %s" % (repr(dist.__version__), repr(dist))) -VERSION = '0.5.2-rc' # Also change in pystache/__init__.py. +VERSION = '0.5.2-rc.1' # Also change in pystache/__init__.py. HISTORY_PATH = 'HISTORY.rst' LICENSE_PATH = 'LICENSE' |