Author: adrian Date: 2011-04-02 15:13:21 -0700 (Sat, 02 Apr 2011) New Revision: 16008
Modified: django/trunk/tests/regressiontests/cache/tests.py Log: Fixed #15704 -- Made cache tests more reusable by moving the backend path into a class attribute. Thanks for the patch, jonash Modified: django/trunk/tests/regressiontests/cache/tests.py =================================================================== --- django/trunk/tests/regressiontests/cache/tests.py 2011-04-02 21:49:39 UTC (rev 16007) +++ django/trunk/tests/regressiontests/cache/tests.py 2011-04-02 22:13:21 UTC (rev 16008) @@ -34,8 +34,10 @@ class DummyCacheTests(unittest.TestCase): # The Dummy cache backend doesn't really behave like a test backend, # so it has different test requirements. + backend_name = 'django.core.cache.backends.dummy.DummyCache' + def setUp(self): - self.cache = get_cache('django.core.cache.backends.dummy.DummyCache') + self.cache = get_cache(self.backend_name) def test_simple(self): "Dummy cache backend ignores cache set calls" @@ -727,15 +729,17 @@ return 'CUSTOM-' + '-'.join([key_prefix, str(version), key]) class DBCacheTests(unittest.TestCase, BaseCacheTests): + backend_name = 'django.core.cache.backends.db.DatabaseCache' + def setUp(self): # Spaces are used in the table name to ensure quoting/escaping is working self._table_name = 'test cache table' management.call_command('createcachetable', self._table_name, verbosity=0, interactive=False) - self.cache = get_cache('django.core.cache.backends.db.DatabaseCache', LOCATION=self._table_name, OPTIONS={'MAX_ENTRIES': 30}) - self.prefix_cache = get_cache('django.core.cache.backends.db.DatabaseCache', LOCATION=self._table_name, KEY_PREFIX='cacheprefix') - self.v2_cache = get_cache('django.core.cache.backends.db.DatabaseCache', LOCATION=self._table_name, VERSION=2) - self.custom_key_cache = get_cache('django.core.cache.backends.db.DatabaseCache', LOCATION=self._table_name, KEY_FUNCTION=custom_key_func) - self.custom_key_cache2 = get_cache('django.core.cache.backends.db.DatabaseCache', LOCATION=self._table_name, KEY_FUNCTION='regressiontests.cache.tests.custom_key_func') + self.cache = get_cache(self.backend_name, LOCATION=self._table_name, OPTIONS={'MAX_ENTRIES': 30}) + self.prefix_cache = get_cache(self.backend_name, LOCATION=self._table_name, KEY_PREFIX='cacheprefix') + self.v2_cache = get_cache(self.backend_name, LOCATION=self._table_name, VERSION=2) + self.custom_key_cache = get_cache(self.backend_name, LOCATION=self._table_name, KEY_FUNCTION=custom_key_func) + self.custom_key_cache2 = get_cache(self.backend_name, LOCATION=self._table_name, KEY_FUNCTION='regressiontests.cache.tests.custom_key_func') def tearDown(self): from django.db import connection @@ -746,7 +750,7 @@ self.perform_cull_test(50, 29) def test_zero_cull(self): - self.cache = get_cache('django.core.cache.backends.db.DatabaseCache', LOCATION=self._table_name, OPTIONS={'MAX_ENTRIES': 30, 'CULL_FREQUENCY': 0}) + self.cache = get_cache(self.backend_name, LOCATION=self._table_name, OPTIONS={'MAX_ENTRIES': 30, 'CULL_FREQUENCY': 0}) self.perform_cull_test(50, 18) def test_old_initialization(self): @@ -754,12 +758,14 @@ self.perform_cull_test(50, 18) class LocMemCacheTests(unittest.TestCase, BaseCacheTests): + backend_name = 'django.core.cache.backends.locmem.LocMemCache' + def setUp(self): - self.cache = get_cache('django.core.cache.backends.locmem.LocMemCache', OPTIONS={'MAX_ENTRIES': 30}) - self.prefix_cache = get_cache('django.core.cache.backends.locmem.LocMemCache', KEY_PREFIX='cacheprefix') - self.v2_cache = get_cache('django.core.cache.backends.locmem.LocMemCache', VERSION=2) - self.custom_key_cache = get_cache('django.core.cache.backends.locmem.LocMemCache', OPTIONS={'MAX_ENTRIES': 30}, KEY_FUNCTION=custom_key_func) - self.custom_key_cache2 = get_cache('django.core.cache.backends.locmem.LocMemCache', OPTIONS={'MAX_ENTRIES': 30}, KEY_FUNCTION='regressiontests.cache.tests.custom_key_func') + self.cache = get_cache(self.backend_name, OPTIONS={'MAX_ENTRIES': 30}) + self.prefix_cache = get_cache(self.backend_name, KEY_PREFIX='cacheprefix') + self.v2_cache = get_cache(self.backend_name, VERSION=2) + self.custom_key_cache = get_cache(self.backend_name, OPTIONS={'MAX_ENTRIES': 30}, KEY_FUNCTION=custom_key_func) + self.custom_key_cache2 = get_cache(self.backend_name, OPTIONS={'MAX_ENTRIES': 30}, KEY_FUNCTION='regressiontests.cache.tests.custom_key_func') # LocMem requires a hack to make the other caches # share a data store with the 'normal' cache. @@ -782,7 +788,7 @@ self.perform_cull_test(50, 29) def test_zero_cull(self): - self.cache = get_cache('django.core.cache.backends.locmem.LocMemCache', OPTIONS={'MAX_ENTRIES': 30, 'CULL_FREQUENCY': 0}) + self.cache = get_cache(self.backend_name, OPTIONS={'MAX_ENTRIES': 30, 'CULL_FREQUENCY': 0}) self.perform_cull_test(50, 19) def test_old_initialization(self): @@ -791,8 +797,8 @@ def test_multiple_caches(self): "Check that multiple locmem caches are isolated" - mirror_cache = get_cache('django.core.cache.backends.locmem.LocMemCache') - other_cache = get_cache('django.core.cache.backends.locmem.LocMemCache', LOCATION='other') + mirror_cache = get_cache(self.backend_name) + other_cache = get_cache(self.backend_name, LOCATION='other') self.cache.set('value1', 42) self.assertEqual(mirror_cache.get('value1'), 42) @@ -803,13 +809,15 @@ # need to contain a cache backend setting that points at # your memcache server. class MemcachedCacheTests(unittest.TestCase, BaseCacheTests): + backend_name = 'django.core.cache.backends.memcached.MemcachedCache' + def setUp(self): name = settings.CACHES[DEFAULT_CACHE_ALIAS]['LOCATION'] - self.cache = get_cache('django.core.cache.backends.memcached.MemcachedCache', LOCATION=name) - self.prefix_cache = get_cache('django.core.cache.backends.memcached.MemcachedCache', LOCATION=name, KEY_PREFIX='cacheprefix') - self.v2_cache = get_cache('django.core.cache.backends.memcached.MemcachedCache', LOCATION=name, VERSION=2) - self.custom_key_cache = get_cache('django.core.cache.backends.memcached.MemcachedCache', LOCATION=name, KEY_FUNCTION=custom_key_func) - self.custom_key_cache2 = get_cache('django.core.cache.backends.memcached.MemcachedCache', LOCATION=name, KEY_FUNCTION='regressiontests.cache.tests.custom_key_func') + self.cache = get_cache(self.backend_name, LOCATION=name) + self.prefix_cache = get_cache(self.backend_name, LOCATION=name, KEY_PREFIX='cacheprefix') + self.v2_cache = get_cache(self.backend_name, LOCATION=name, VERSION=2) + self.custom_key_cache = get_cache(self.backend_name, LOCATION=name, KEY_FUNCTION=custom_key_func) + self.custom_key_cache2 = get_cache(self.backend_name, LOCATION=name, KEY_FUNCTION='regressiontests.cache.tests.custom_key_func') def tearDown(self): self.cache.clear() @@ -835,13 +843,15 @@ """ Specific test cases for the file-based cache. """ + backend_name = 'django.core.cache.backends.filebased.FileBasedCache' + def setUp(self): self.dirname = tempfile.mkdtemp() - self.cache = get_cache('django.core.cache.backends.filebased.FileBasedCache', LOCATION=self.dirname, OPTIONS={'MAX_ENTRIES': 30}) - self.prefix_cache = get_cache('django.core.cache.backends.filebased.FileBasedCache', LOCATION=self.dirname, KEY_PREFIX='cacheprefix') - self.v2_cache = get_cache('django.core.cache.backends.filebased.FileBasedCache', LOCATION=self.dirname, VERSION=2) - self.custom_key_cache = get_cache('django.core.cache.backends.filebased.FileBasedCache', LOCATION=self.dirname, KEY_FUNCTION=custom_key_func) - self.custom_key_cache2 = get_cache('django.core.cache.backends.filebased.FileBasedCache', LOCATION=self.dirname, KEY_FUNCTION='regressiontests.cache.tests.custom_key_func') + self.cache = get_cache(self.backend_name, LOCATION=self.dirname, OPTIONS={'MAX_ENTRIES': 30}) + self.prefix_cache = get_cache(self.backend_name, LOCATION=self.dirname, KEY_PREFIX='cacheprefix') + self.v2_cache = get_cache(self.backend_name, LOCATION=self.dirname, VERSION=2) + self.custom_key_cache = get_cache(self.backend_name, LOCATION=self.dirname, KEY_FUNCTION=custom_key_func) + self.custom_key_cache2 = get_cache(self.backend_name, LOCATION=self.dirname, KEY_FUNCTION='regressiontests.cache.tests.custom_key_func') def tearDown(self): self.cache.clear() -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.