]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Added new method itervalues() to LRUCache and deprecated itervalue() 1008/head
authorgokcegrbl <gokcegrbl@hotmail.com>
Fri, 31 May 2019 12:28:44 +0000 (12:28 +0000)
committergokcegrbl <gokcegrbl@hotmail.com>
Fri, 31 May 2019 12:28:44 +0000 (12:28 +0000)
(Fixes pallets/jinja#999)

jinja2/utils.py
tests/test_utils.py

index 538b7745bef6116224da99928381a7f9b1f0ffaf..d13a81b2d69f51eee9f03d076bedd279d57ee26b 100644 (file)
@@ -11,6 +11,7 @@
 import re
 import json
 import errno
+import warnings
 from collections import deque
 from threading import Lock
 from jinja2._compat import text_type, string_types, implements_iterator, \
@@ -456,6 +457,14 @@ class LRUCache(object):
         return [x[1] for x in self.items()]
 
     def itervalue(self):
+        """Iterate over all values."""
+        warnings.warn(DeprecationWarning(
+            '"itervalue()" is deprecated and will be removed in version 2.12.'
+            + ' Use "itervalues()" instead.'
+        ), stacklevel=2)
+        return self.itervalues()
+
+    def itervalues(self):
         """Iterate over all values."""
         return iter(self.values())
 
index f71c608e5b1cc741cd572c1921ad56281e09b9eb..91defc909a7b49eaa486d0a42a7d6c98673abce0 100644 (file)
@@ -32,6 +32,27 @@ class TestLRUCache(object):
         assert len(d) == 3
         assert 'a' in d and 'c' in d and 'd' in d and 'b' not in d
 
+    def test_itervalue_deprecated(self):
+        cache = LRUCache(3)
+        cache["a"] = 1
+        cache["b"] = 2
+        with pytest.deprecated_call():
+            cache.itervalue()
+
+    def test_itervalues(self):
+        cache = LRUCache(3)
+        cache["b"] = 1
+        cache["a"] = 2
+        values = [v for v in cache.itervalues()]
+        assert len(values) == 2
+        assert 1 in values
+        assert 2 in values
+
+    def test_itervalues_empty(self):
+        cache = LRUCache(2)
+        values = [v for v in cache.itervalues()]
+        assert len(values) == 0
+
     def test_pickleable(self):
         cache = LRUCache(2)
         cache["foo"] = 42