Skip to content

Commit 60b5333

Browse files
authored
bpo-45679: add tuple tests with lru_cache to test_functools (GH-29339)
1 parent 3d42cd9 commit 60b5333

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

Lib/test/test_functools.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1495,6 +1495,33 @@ def square(x):
14951495
self.assertEqual(square.cache_info().hits, 4)
14961496
self.assertEqual(square.cache_info().misses, 4)
14971497

1498+
def test_lru_cache_typed_is_not_recursive(self):
1499+
cached = self.module.lru_cache(typed=True)(repr)
1500+
1501+
self.assertEqual(cached(1), '1')
1502+
self.assertEqual(cached(True), 'True')
1503+
self.assertEqual(cached(1.0), '1.0')
1504+
self.assertEqual(cached(0), '0')
1505+
self.assertEqual(cached(False), 'False')
1506+
self.assertEqual(cached(0.0), '0.0')
1507+
1508+
self.assertEqual(cached((1,)), '(1,)')
1509+
self.assertEqual(cached((True,)), '(1,)')
1510+
self.assertEqual(cached((1.0,)), '(1,)')
1511+
self.assertEqual(cached((0,)), '(0,)')
1512+
self.assertEqual(cached((False,)), '(0,)')
1513+
self.assertEqual(cached((0.0,)), '(0,)')
1514+
1515+
class T(tuple):
1516+
pass
1517+
1518+
self.assertEqual(cached(T((1,))), '(1,)')
1519+
self.assertEqual(cached(T((True,))), '(1,)')
1520+
self.assertEqual(cached(T((1.0,))), '(1,)')
1521+
self.assertEqual(cached(T((0,))), '(0,)')
1522+
self.assertEqual(cached(T((False,))), '(0,)')
1523+
self.assertEqual(cached(T((0.0,))), '(0,)')
1524+
14981525
def test_lru_with_keyword_args(self):
14991526
@self.module.lru_cache()
15001527
def fib(n):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Add tests with ``tuple`` type with :func:`functools.lru_cache` to
2+
``test_functools``.

0 commit comments

Comments
 (0)