diff --git a/django/test/simple.py b/django/test/simple.py index c9adfd22bb..1534011c17 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 d19df3c725..bd3e40c13b 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')