From dc112bf530fe2fc3b9be82bb7a6e3213c5f7fc11 Mon Sep 17 00:00:00 2001 From: Daniel Tao Date: Fri, 15 Sep 2017 16:16:44 -0500 Subject: [2.0.x] Fixed #28601 -- Prevented cache.get_or_set() from caching None if default is a callable that returns None. Backport of 4d60261b2a77460b4c127c3d832518b95e11a0ac from master --- tests/cache/tests.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tests') diff --git a/tests/cache/tests.py b/tests/cache/tests.py index e093dc842d..0549d790bc 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -926,6 +926,11 @@ class BaseCacheTests: self.assertEqual(cache.get_or_set('mykey', my_callable), 'value') self.assertEqual(cache.get_or_set('mykey', my_callable()), 'value') + def test_get_or_set_callable_returning_none(self): + self.assertIsNone(cache.get_or_set('mykey', lambda: None)) + # Previous get_or_set() doesn't store None in the cache. + self.assertEqual(cache.get('mykey', 'default'), 'default') + def test_get_or_set_version(self): msg = "get_or_set() missing 1 required positional argument: 'default'" cache.get_or_set('brian', 1979, version=2) -- cgit v1.3