summaryrefslogtreecommitdiff
path: root/tests/multiple_database
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-05-24 20:45:03 +0200
committerClaude Paroz <claude@2xlibre.net>2013-05-24 20:48:02 +0200
commit7e95d7a93088675f984d1079e4e3c3ddc1723b0f (patch)
tree4ae91fcc37f1a3f9f9938557af20770bf250ff8e /tests/multiple_database
parentfbab3209fc6b32752a71d012add57cd440adfc94 (diff)
Fixed a regression in router initialization
Regression was introduced in 6a6bb168b. Thanks Bas Peschier for the report.
Diffstat (limited to 'tests/multiple_database')
-rw-r--r--tests/multiple_database/tests.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/multiple_database/tests.py b/tests/multiple_database/tests.py
index 2bff7b3b66..e72fb6a4f9 100644
--- a/tests/multiple_database/tests.py
+++ b/tests/multiple_database/tests.py
@@ -5,11 +5,13 @@ import pickle
from operator import attrgetter
import warnings
+from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.core import management
from django.db import connections, router, DEFAULT_DB_ALIAS
from django.db.models import signals
+from django.db.utils import ConnectionRouter
from django.test import TestCase
from django.test.utils import override_settings
from django.utils.six import StringIO
@@ -918,6 +920,7 @@ class QueryTestCase(TestCase):
published=datetime.date(2009, 5, 4),
extra_arg=True)
+
class TestRouter(object):
# A test router. The behavior is vaguely master/slave, but the
# databases aren't assumed to propagate changes.
@@ -972,6 +975,30 @@ class WriteRouter(object):
def db_for_write(self, model, **hints):
return 'writer'
+
+class ConnectionRouterTestCase(TestCase):
+ @override_settings(DATABASE_ROUTERS=[
+ 'multiple_database.tests.TestRouter',
+ 'multiple_database.tests.WriteRouter'])
+ def test_router_init_default(self):
+ router = ConnectionRouter()
+ self.assertListEqual([r.__class__.__name__ for r in router.routers],
+ ['TestRouter', 'WriteRouter'])
+
+ def test_router_init_arg(self):
+ router = ConnectionRouter([
+ 'multiple_database.tests.TestRouter',
+ 'multiple_database.tests.WriteRouter'
+ ])
+ self.assertListEqual([r.__class__.__name__ for r in router.routers],
+ ['TestRouter', 'WriteRouter'])
+
+ # Init with instances instead of strings
+ router = ConnectionRouter([TestRouter(), WriteRouter()])
+ self.assertListEqual([r.__class__.__name__ for r in router.routers],
+ ['TestRouter', 'WriteRouter'])
+
+
class RouterTestCase(TestCase):
multi_db = True