diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2013-06-07 11:15:34 +0100 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2013-06-07 11:15:34 +0100 |
| commit | 3c296382b8dea5de7f4e1e11b66bd7cecaf2ee51 (patch) | |
| tree | 0ca12593be82971691ffca01a836d00d3fcb3bd4 /tests/multiple_database | |
| parent | 7609e0b42e0014a6ad0adf9dafc7018cb268070e (diff) | |
| parent | 357d62d9f2972bf1bc21e5835c12c849143e06af (diff) | |
Merge remote-tracking branch 'core/master' into schema-alteration
Conflicts:
django/db/models/fields/related.py
Diffstat (limited to 'tests/multiple_database')
| -rw-r--r-- | tests/multiple_database/tests.py | 27 |
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 |
