Made cache table test case multidb capable. Refs #16411. Thanks, Russ.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16513 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jannis Leidel 2011-07-05 13:55:14 +00:00
parent 2b2bec0cc9
commit b884990388
1 changed files with 16 additions and 13 deletions

View File

@ -14,10 +14,10 @@ from django.conf import settings
from django.core import management
from django.core.cache import get_cache, DEFAULT_CACHE_ALIAS
from django.core.cache.backends.base import CacheKeyWarning, InvalidCacheBackendError
from django.db import connections, router
from django.db import router
from django.http import HttpResponse, HttpRequest, QueryDict
from django.middleware.cache import FetchFromCacheMiddleware, UpdateCacheMiddleware, CacheMiddleware
from django.test import RequestFactory
from django.test import RequestFactory, TestCase
from django.test.utils import get_warnings_state, restore_warnings_state, override_settings
from django.utils import translation
from django.utils import unittest
@ -771,28 +771,31 @@ class DBCacheRouter(object):
return 'other'
def allow_syncdb(self, db, model):
print self, db, model
if model._meta.app_label == 'django_cache':
return db == 'other'
class CreateCacheTableForDBCacheTests(unittest.TestCase):
class CreateCacheTableForDBCacheTests(TestCase):
multi_db = True
def test_createcachetable_observes_database_router(self):
with override_settings(DEBUG=True):
old_routers = router.routers
try:
router.routers = [DBCacheRouter()]
# cache table should not be created on 'default'
old_routers = router.routers
try:
router.routers = [DBCacheRouter()]
# cache table should not be created on 'default'
with self.assertNumQueries(0):
management.call_command('createcachetable', 'cache_table',
database='default',
verbosity=0, interactive=False)
self.assertEqual(len(connections['default'].queries), 0)
# cache table should be created on 'other'
# cache table should be created on 'other'
with self.assertNumQueries(1):
management.call_command('createcachetable', 'cache_table',
database='other',
verbosity=0, interactive=False)
self.assertNotEqual(len(connections['other'].queries), 0)
finally:
router.routers = old_routers
finally:
router.routers = old_routers
class LocMemCacheTests(unittest.TestCase, BaseCacheTests):
backend_name = 'django.core.cache.backends.locmem.LocMemCache'