summaryrefslogtreecommitdiff
path: root/tests/regressiontests/cache
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/cache')
-rw-r--r--tests/regressiontests/cache/liberal_backend.py4
-rw-r--r--tests/regressiontests/cache/tests.py107
2 files changed, 69 insertions, 42 deletions
diff --git a/tests/regressiontests/cache/liberal_backend.py b/tests/regressiontests/cache/liberal_backend.py
index 5c7e312690..cc15b66465 100644
--- a/tests/regressiontests/cache/liberal_backend.py
+++ b/tests/regressiontests/cache/liberal_backend.py
@@ -1,9 +1,9 @@
-from django.core.cache.backends.locmem import CacheClass as LocMemCacheClass
+from django.core.cache.backends.locmem import LocMemCache
class LiberalKeyValidationMixin(object):
def validate_key(self, key):
pass
-class CacheClass(LiberalKeyValidationMixin, LocMemCacheClass):
+class CacheClass(LiberalKeyValidationMixin, LocMemCache):
pass
diff --git a/tests/regressiontests/cache/tests.py b/tests/regressiontests/cache/tests.py
index 941ab70b8a..6c5775830a 100644
--- a/tests/regressiontests/cache/tests.py
+++ b/tests/regressiontests/cache/tests.py
@@ -11,7 +11,7 @@ import warnings
from django.conf import settings
from django.core import management
-from django.core.cache import get_cache
+from django.core.cache import get_cache, DEFAULT_CACHE_ALIAS
from django.core.cache.backends.base import InvalidCacheBackendError, CacheKeyWarning
from django.http import HttpResponse, HttpRequest
from django.middleware.cache import FetchFromCacheMiddleware, UpdateCacheMiddleware
@@ -33,7 +33,7 @@ class DummyCacheTests(unittest.TestCase):
# The Dummy cache backend doesn't really behave like a test backend,
# so it has different test requirements.
def setUp(self):
- self.cache = get_cache('dummy://')
+ self.cache = get_cache('django.core.cache.backends.dummy.DummyCache')
def test_simple(self):
"Dummy cache backend ignores cache set calls"
@@ -429,9 +429,6 @@ class BaseCacheTests(object):
self.assertEqual(self.cache.get('answer1', version=2), None)
self.assertEqual(self.v2_cache.get('answer1'), None)
- # print '---'
- # print 'c1',self.cache._cache
- # print 'v2',self.v2_cache._cache
self.assertEqual(self.v2_cache.get('answer1', version=1), 42)
self.assertEqual(self.v2_cache.get('answer1', version=2), None)
@@ -704,11 +701,11 @@ class DBCacheTests(unittest.TestCase, BaseCacheTests):
# 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('db://%s?max_entries=30' % self._table_name)
- self.prefix_cache = get_cache('db://%s' % self._table_name, key_prefix='cacheprefix')
- self.v2_cache = get_cache('db://%s' % self._table_name, version=2)
- self.custom_key_cache = get_cache('db://%s' % self._table_name, key_func=custom_key_func)
- self.custom_key_cache2 = get_cache('db://%s' % self._table_name, key_func='regressiontests.cache.tests.custom_key_func')
+ 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')
def tearDown(self):
from django.db import connection
@@ -719,16 +716,20 @@ class DBCacheTests(unittest.TestCase, BaseCacheTests):
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.perform_cull_test(50, 18)
+
+ def test_old_initialization(self):
self.cache = get_cache('db://%s?max_entries=30&cull_frequency=0' % self._table_name)
self.perform_cull_test(50, 18)
class LocMemCacheTests(unittest.TestCase, BaseCacheTests):
def setUp(self):
- self.cache = get_cache('locmem://?max_entries=30')
- self.prefix_cache = get_cache('locmem://', key_prefix='cacheprefix')
- self.v2_cache = get_cache('locmem://', version=2)
- self.custom_key_cache = get_cache('locmem://?max_entries=30', key_func=custom_key_func)
- self.custom_key_cache2 = get_cache('locmem://?max_entries=30', key_func='regressiontests.cache.tests.custom_key_func')
+ 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')
# LocMem requires a hack to make the other caches
# share a data store with the 'normal' cache.
@@ -744,24 +745,32 @@ class LocMemCacheTests(unittest.TestCase, BaseCacheTests):
self.custom_key_cache2._cache = self.cache._cache
self.custom_key_cache2._expire_info = self.cache._expire_info
+ def tearDown(self):
+ self.cache.clear()
+
def test_cull(self):
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.perform_cull_test(50, 19)
+
+ def test_old_initialization(self):
self.cache = get_cache('locmem://?max_entries=30&cull_frequency=0')
self.perform_cull_test(50, 19)
# memcached backend isn't guaranteed to be available.
# To check the memcached backend, the test settings file will
-# need to contain a CACHE_BACKEND setting that points at
+# need to contain a cache backend setting that points at
# your memcache server.
class MemcachedCacheTests(unittest.TestCase, BaseCacheTests):
def setUp(self):
- self.cache = get_cache(settings.CACHE_BACKEND)
- self.prefix_cache = get_cache(settings.CACHE_BACKEND, key_prefix='cacheprefix')
- self.v2_cache = get_cache(settings.CACHE_BACKEND, version=2)
- self.custom_key_cache = get_cache(settings.CACHE_BACKEND, key_func=custom_key_func)
- self.custom_key_cache2 = get_cache(settings.CACHE_BACKEND, key_func='regressiontests.cache.tests.custom_key_func')
+ 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')
def tearDown(self):
self.cache.clear()
@@ -781,7 +790,7 @@ class MemcachedCacheTests(unittest.TestCase, BaseCacheTests):
# memcached limits key length to 250
self.assertRaises(Exception, self.cache.set, 'a' * 251, 'value')
-MemcachedCacheTests = unittest.skipUnless(settings.CACHE_BACKEND.startswith('memcached://'), "memcached not available")(MemcachedCacheTests)
+MemcachedCacheTests = unittest.skipUnless(settings.CACHES[DEFAULT_CACHE_ALIAS]['BACKEND'].startswith('django.core.cache.backends.memcached.'), "memcached not available")(MemcachedCacheTests)
class FileBasedCacheTests(unittest.TestCase, BaseCacheTests):
"""
@@ -789,11 +798,11 @@ class FileBasedCacheTests(unittest.TestCase, BaseCacheTests):
"""
def setUp(self):
self.dirname = tempfile.mkdtemp()
- self.cache = get_cache('file://%s?max_entries=30' % self.dirname)
- self.prefix_cache = get_cache('file://%s' % self.dirname, key_prefix='cacheprefix')
- self.v2_cache = get_cache('file://%s' % self.dirname, version=2)
- self.custom_key_cache = get_cache('file://%s' % self.dirname, key_func=custom_key_func)
- self.custom_key_cache2 = get_cache('file://%s' % self.dirname, key_func='regressiontests.cache.tests.custom_key_func')
+ 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')
def tearDown(self):
self.cache.clear()
@@ -824,6 +833,10 @@ class FileBasedCacheTests(unittest.TestCase, BaseCacheTests):
def test_cull(self):
self.perform_cull_test(50, 29)
+ def test_old_initialization(self):
+ self.cache = get_cache('file://%s?max_entries=30' % self.dirname)
+ self.perform_cull_test(50, 29)
+
class CustomCacheKeyValidationTests(unittest.TestCase):
"""
Tests for the ability to mixin a custom ``validate_key`` method to
@@ -911,28 +924,35 @@ class CacheUtils(unittest.TestCase):
class PrefixedCacheUtils(CacheUtils):
def setUp(self):
super(PrefixedCacheUtils, self).setUp()
- self.old_cache_key_prefix = settings.CACHE_KEY_PREFIX
- settings.CACHE_KEY_PREFIX = 'cacheprefix'
+ self.old_cache_key_prefix = settings.CACHES['default'].get('KEY_PREFIX', None)
+ settings.CACHES['default']['KEY_PREFIX'] = 'cacheprefix'
def tearDown(self):
super(PrefixedCacheUtils, self).tearDown()
- settings.CACHE_KEY_PREFIX = self.old_cache_key_prefix
+ if self.old_cache_key_prefix is None:
+ del settings.CACHES['default']['KEY_PREFIX']
+ else:
+ settings.CACHES['default']['KEY_PREFIX'] = self.old_cache_key_prefix
class CacheHEADTest(unittest.TestCase):
def setUp(self):
self.orig_cache_middleware_seconds = settings.CACHE_MIDDLEWARE_SECONDS
self.orig_cache_middleware_key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
- self.orig_cache_backend = settings.CACHE_BACKEND
+ self.orig_caches = settings.CACHES
settings.CACHE_MIDDLEWARE_SECONDS = 60
settings.CACHE_MIDDLEWARE_KEY_PREFIX = 'test'
- settings.CACHE_BACKEND = 'locmem:///'
+ settings.CACHES = {
+ 'default': {
+ 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
+ }
+ }
self.path = '/cache/test/'
def tearDown(self):
settings.CACHE_MIDDLEWARE_SECONDS = self.orig_cache_middleware_seconds
settings.CACHE_MIDDLEWARE_KEY_PREFIX = self.orig_cache_middleware_key_prefix
- settings.CACHE_BACKEND = self.orig_cache_backend
+ settings.CACHES = self.orig_caches
def _get_request(self, method):
request = HttpRequest()
@@ -981,7 +1001,7 @@ class CacheI18nTest(unittest.TestCase):
def setUp(self):
self.orig_cache_middleware_seconds = settings.CACHE_MIDDLEWARE_SECONDS
self.orig_cache_middleware_key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
- self.orig_cache_backend = settings.CACHE_BACKEND
+ self.orig_caches = settings.CACHES
self.orig_use_i18n = settings.USE_I18N
self.orig_languages = settings.LANGUAGES
settings.LANGUAGES = (
@@ -994,7 +1014,7 @@ class CacheI18nTest(unittest.TestCase):
def tearDown(self):
settings.CACHE_MIDDLEWARE_SECONDS = self.orig_cache_middleware_seconds
settings.CACHE_MIDDLEWARE_KEY_PREFIX = self.orig_cache_middleware_key_prefix
- settings.CACHE_BACKEND = self.orig_cache_backend
+ settings.CACHES = self.orig_caches
settings.USE_I18N = self.orig_use_i18n
settings.LANGUAGES = self.orig_languages
translation.deactivate()
@@ -1046,8 +1066,12 @@ class CacheI18nTest(unittest.TestCase):
return UpdateCacheMiddleware().process_response(request, response)
settings.CACHE_MIDDLEWARE_SECONDS = 60
- settings.CACHE_MIDDLEWARE_KEY_PREFIX="test"
- settings.CACHE_BACKEND='locmem:///'
+ settings.CACHE_MIDDLEWARE_KEY_PREFIX = "test"
+ settings.CACHES = {
+ 'default': {
+ 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
+ }
+ }
settings.USE_ETAGS = True
settings.USE_I18N = True
en_message ="Hello world!"
@@ -1083,12 +1107,15 @@ class CacheI18nTest(unittest.TestCase):
class PrefixedCacheI18nTest(CacheI18nTest):
def setUp(self):
super(PrefixedCacheI18nTest, self).setUp()
- self.old_cache_key_prefix = settings.CACHE_KEY_PREFIX
- settings.CACHE_KEY_PREFIX = 'cacheprefix'
+ self.old_cache_key_prefix = settings.CACHES['default'].get('KEY_PREFIX', None)
+ settings.CACHES['default']['KEY_PREFIX'] = 'cacheprefix'
def tearDown(self):
super(PrefixedCacheI18nTest, self).tearDown()
- settings.CACHE_KEY_PREFIX = self.old_cache_key_prefix
+ if self.old_cache_key_prefix is not None:
+ del settings.CACHES['default']['KEY_PREFIX']
+ else:
+ settings.CACHES['default']['KEY_PREFIX'] = self.old_cache_key_prefix
if __name__ == '__main__':
unittest.main()