]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-45679: add `tuple` tests with `lru_cache` to `test_functools` (GH-29339)
authorNikita Sobolev <mail@sobolevn.me>
Fri, 5 Nov 2021 19:52:46 +0000 (22:52 +0300)
committerGitHub <noreply@github.com>
Fri, 5 Nov 2021 19:52:46 +0000 (14:52 -0500)
Lib/test/test_functools.py
Misc/NEWS.d/next/Tests/2021-10-31-10-58-45.bpo-45701.r0LAUL.rst [new file with mode: 0644]

index 7bc355ff7213ee0be8845851363a90998c06fddb..08cf457cc17db549043f6e58edcf0c0b9035e2aa 100644 (file)
@@ -1495,6 +1495,33 @@ class TestLRU:
             self.assertEqual(square.cache_info().hits, 4)
             self.assertEqual(square.cache_info().misses, 4)
 
+    def test_lru_cache_typed_is_not_recursive(self):
+        cached = self.module.lru_cache(typed=True)(repr)
+
+        self.assertEqual(cached(1), '1')
+        self.assertEqual(cached(True), 'True')
+        self.assertEqual(cached(1.0), '1.0')
+        self.assertEqual(cached(0), '0')
+        self.assertEqual(cached(False), 'False')
+        self.assertEqual(cached(0.0), '0.0')
+
+        self.assertEqual(cached((1,)), '(1,)')
+        self.assertEqual(cached((True,)), '(1,)')
+        self.assertEqual(cached((1.0,)), '(1,)')
+        self.assertEqual(cached((0,)), '(0,)')
+        self.assertEqual(cached((False,)), '(0,)')
+        self.assertEqual(cached((0.0,)), '(0,)')
+
+        class T(tuple):
+            pass
+
+        self.assertEqual(cached(T((1,))), '(1,)')
+        self.assertEqual(cached(T((True,))), '(1,)')
+        self.assertEqual(cached(T((1.0,))), '(1,)')
+        self.assertEqual(cached(T((0,))), '(0,)')
+        self.assertEqual(cached(T((False,))), '(0,)')
+        self.assertEqual(cached(T((0.0,))), '(0,)')
+
     def test_lru_with_keyword_args(self):
         @self.module.lru_cache()
         def fib(n):
diff --git a/Misc/NEWS.d/next/Tests/2021-10-31-10-58-45.bpo-45701.r0LAUL.rst b/Misc/NEWS.d/next/Tests/2021-10-31-10-58-45.bpo-45701.r0LAUL.rst
new file mode 100644 (file)
index 0000000..89106cf
--- /dev/null
@@ -0,0 +1,2 @@
+Add tests with ``tuple`` type with :func:`functools.lru_cache` to
+``test_functools``.