From 60b5333fa936a7e7f078a82e0fa3752cc9b6c5fb Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Fri, 5 Nov 2021 22:52:46 +0300 Subject: bpo-45679: add `tuple` tests with `lru_cache` to `test_functools` (GH-29339) --- Lib/test/test_functools.py | 27 ++++++++++++++++++++++ .../Tests/2021-10-31-10-58-45.bpo-45701.r0LAUL.rst | 2 ++ 2 files changed, 29 insertions(+) create mode 100644 Misc/NEWS.d/next/Tests/2021-10-31-10-58-45.bpo-45701.r0LAUL.rst diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 7bc355f..08cf457 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -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 index 0000000..89106cf --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-10-31-10-58-45.bpo-45701.r0LAUL.rst @@ -0,0 +1,2 @@ +Add tests with ``tuple`` type with :func:`functools.lru_cache` to +``test_functools``. -- cgit v0.12