Calls to functions in templates are now intercepted for StopIteration.
[jinja2.git] / jinja2 / testsuite / api.py
index 42054f51706145b7a5582e26305927981419a6fc..7463c7f3f298a1448c8224016faade813b0f728b 100644 (file)
@@ -172,6 +172,14 @@ class StreamingTestCase(JinjaTestCase):
 
 class UndefinedTestCase(JinjaTestCase):
 
+    def test_stopiteration_is_undefined(self):
+        def test():
+            raise StopIteration()
+        t = Template('A{{ test() }}B')
+        assert t.render(test=test) == 'AB'
+        t = Template('A{{ test().missingattribute }}B')
+        self.assert_raises(UndefinedError, t.render, test=test)
+
     def test_default_undefined(self):
         env = Environment(undefined=Undefined)
         self.assert_equal(env.from_string('{{ missing }}').render(), u'')