Removed all uses of create_cache.
Refactored the cache tests significantly. Made it safe to override the CACHES setting.
This commit is contained in:
parent
35e289fe92
commit
905a74f52b
|
@ -1,7 +1,7 @@
|
||||||
from optparse import make_option
|
from optparse import make_option
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.cache import create_cache
|
from django.core.cache import caches
|
||||||
from django.core.cache.backends.db import BaseDatabaseCache
|
from django.core.cache.backends.db import BaseDatabaseCache
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
from django.db import connections, router, transaction, models, DEFAULT_DB_ALIAS
|
from django.db import connections, router, transaction, models, DEFAULT_DB_ALIAS
|
||||||
|
@ -30,7 +30,7 @@ class Command(BaseCommand):
|
||||||
self.create_table(db, tablename)
|
self.create_table(db, tablename)
|
||||||
else:
|
else:
|
||||||
for cache_alias in settings.CACHES:
|
for cache_alias in settings.CACHES:
|
||||||
cache = create_cache(cache_alias)
|
cache = caches[cache_alias]
|
||||||
if isinstance(cache, BaseDatabaseCache):
|
if isinstance(cache, BaseDatabaseCache):
|
||||||
self.create_table(db, cache._table)
|
self.create_table(db, cache._table)
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ More details about how the caching works:
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.cache import create_cache, caches, DEFAULT_CACHE_ALIAS
|
from django.core.cache import caches, DEFAULT_CACHE_ALIAS
|
||||||
from django.utils.cache import get_cache_key, learn_cache_key, patch_response_headers, get_max_age
|
from django.utils.cache import get_cache_key, learn_cache_key, patch_response_headers, get_max_age
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,4 +196,4 @@ class CacheMiddleware(UpdateCacheMiddleware, FetchFromCacheMiddleware):
|
||||||
msg = "CACHE_MIDDLEWARE_ANONYMOUS_ONLY has been deprecated and will be removed in Django 1.8."
|
msg = "CACHE_MIDDLEWARE_ANONYMOUS_ONLY has been deprecated and will be removed in Django 1.8."
|
||||||
warnings.warn(msg, DeprecationWarning, stacklevel=1)
|
warnings.warn(msg, DeprecationWarning, stacklevel=1)
|
||||||
|
|
||||||
self.cache = create_cache(self.cache_alias)
|
self.cache = caches[self.cache_alias]
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
import threading
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
@ -19,6 +20,13 @@ setting_changed = Signal(providing_args=["setting", "value", "enter"])
|
||||||
COMPLEX_OVERRIDE_SETTINGS = set(['DATABASES'])
|
COMPLEX_OVERRIDE_SETTINGS = set(['DATABASES'])
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(setting_changed)
|
||||||
|
def clear_cache_handlers(**kwargs):
|
||||||
|
if kwargs['setting'] == 'CACHES':
|
||||||
|
from django.core.cache import caches
|
||||||
|
caches._caches = threading.local()
|
||||||
|
|
||||||
|
|
||||||
@receiver(setting_changed)
|
@receiver(setting_changed)
|
||||||
def update_connections_time_zone(**kwargs):
|
def update_connections_time_zone(**kwargs):
|
||||||
if kwargs['setting'] == 'TIME_ZONE':
|
if kwargs['setting'] == 'TIME_ZONE':
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue