mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	[3.1.x] 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.
Backport of f386454d13 from master
			
			
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						parent
						
							ac7f7eab0f
						
					
				
				
					commit
					b2e2489d80
				
			
							
								
								
									
										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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user