]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Give Cycler a next() method so that it works in python2 and 3 525/head
authorMatt Haggard <haggardii@gmail.com>
Tue, 29 Dec 2015 23:12:39 +0000 (16:12 -0700)
committerMatt Haggard <haggardii@gmail.com>
Tue, 29 Dec 2015 23:12:39 +0000 (16:12 -0700)
jinja2/utils.py
tests/test_api.py

index 612d5c3d8bb9b7bdb28a10e1fee0f174d8bc69cf..b5ea5a34887a9d01296eb6d1a81892cca7cb2016 100644 (file)
@@ -506,12 +506,14 @@ class Cycler(object):
         """Returns the current item."""
         return self.items[self.pos]
 
-    def __next__(self):
+    def next(self):
         """Goes one item ahead and returns it."""
         rv = self.current
         self.pos = (self.pos + 1) % len(self.items)
         return rv
 
+    __next__ = next
+
 
 class Joiner(object):
     """A joining helper for templates."""
index 99d8dc1e13ea9994cbb3f24e18977ded074d5d03..d44b6e3ad4fe97e221b0e1d40026782a827968d2 100644 (file)
@@ -59,6 +59,17 @@ class TestExtendedAPI():
         c.reset()
         assert c.current == 1
 
+    def test_cycler_nextmethod(self, env):
+        items = 1, 2, 3
+        c = Cycler(*items)
+        for item in items + items:
+            assert c.current == item
+            assert c.next() == item
+        c.next()
+        assert c.current == 2
+        c.reset()
+        assert c.current == 1        
+
     def test_expressions(self, env):
         expr = env.compile_expression("foo")
         assert expr() is None