From 905e33f84a1a10e4f0183d879c52076ef876fc3b Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 20 Jan 2012 23:15:22 +0000 Subject: [PATCH] Fixed #16885 -- Confirmed features of mirror databases when setting up test databases. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17382 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/test/simple.py | 1 + tests/regressiontests/test_runner/tests.py | 25 +++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/django/test/simple.py b/django/test/simple.py index c9adfd22bb0..1534011c173 100644 --- a/django/test/simple.py +++ b/django/test/simple.py @@ -304,6 +304,7 @@ class DjangoTestSuiteRunner(object): for alias, mirror_alias in mirrored_aliases.items(): mirrors.append((alias, connections[alias].settings_dict['NAME'])) connections[alias].settings_dict['NAME'] = connections[mirror_alias].settings_dict['NAME'] + connections[alias].features = connections[mirror_alias].features return old_names, mirrors diff --git a/tests/regressiontests/test_runner/tests.py b/tests/regressiontests/test_runner/tests.py index d19df3c7259..bd3e40c13ba 100644 --- a/tests/regressiontests/test_runner/tests.py +++ b/tests/regressiontests/test_runner/tests.py @@ -10,7 +10,7 @@ import warnings from django.core.exceptions import ImproperlyConfigured from django.core.management import call_command from django.test import simple -from django.test.simple import get_tests +from django.test.simple import DjangoTestSuiteRunner, get_tests from django.test.utils import get_warnings_state, restore_warnings_state from django.utils import unittest from django.utils.importlib import import_module @@ -214,6 +214,29 @@ class CustomTestRunnerOptionsTests(AdminScriptTestCase): self.assertOutput(out, 'bar:foo:31337') +class Ticket16885RegressionTests(unittest.TestCase): + def test_ticket_16885(self): + """Features are also confirmed on mirrored databases.""" + from django import db + old_db_connections = db.connections + try: + db.connections = db.ConnectionHandler({ + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + }, + 'slave': { + 'ENGINE': 'django.db.backends.sqlite3', + 'TEST_MIRROR': 'default', + }, + }) + slave = db.connections['slave'] + self.assertEqual(slave.features.supports_transactions, None) + DjangoTestSuiteRunner(verbosity=0).setup_databases() + self.assertNotEqual(slave.features.supports_transactions, None) + finally: + db.connections = old_db_connections + + class Ticket17477RegressionTests(AdminScriptTestCase): def setUp(self): self.write_settings('settings.py')