mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Fixed #31728 -- Fixed cache culling when no key is found for deletion.
DatabaseCache._cull implementation could fail if no key was found to perform a deletion in the table. This prevented the new cache key/value from being correctly added.
This commit is contained in:
parent
27c09043da
commit
f386454d13
2 changed files with 20 additions and 3 deletions
14
tests/cache/tests.py
vendored
14
tests/cache/tests.py
vendored
|
@ -621,6 +621,20 @@ class BaseCacheTests:
|
|||
def test_zero_cull(self):
|
||||
self._perform_cull_test('zero_cull', 50, 19)
|
||||
|
||||
def test_cull_delete_when_store_empty(self):
|
||||
try:
|
||||
cull_cache = caches['cull']
|
||||
except InvalidCacheBackendError:
|
||||
self.skipTest("Culling isn't implemented.")
|
||||
old_max_entries = cull_cache._max_entries
|
||||
# Force _cull to delete on first cached record.
|
||||
cull_cache._max_entries = -1
|
||||
try:
|
||||
cull_cache.set('force_cull_delete', 'value', 1000)
|
||||
self.assertIs(cull_cache.has_key('force_cull_delete'), True)
|
||||
finally:
|
||||
cull_cache._max_entries = old_max_entries
|
||||
|
||||
def _perform_invalid_key_test(self, key, expected_warning):
|
||||
"""
|
||||
All the builtin backends should warn (except memcached that should
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue