mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[1.5.x] Fixed #20681 -- Prevented teardown_databases from attempting to tear down aliases
Thanks simonpercivall.
Backport of d9c580306c from master
			
			
This commit is contained in:
		| @@ -310,12 +310,14 @@ class DjangoTestSuiteRunner(object): | ||||
|  | ||||
|             for alias in aliases: | ||||
|                 connection = connections[alias] | ||||
|                 old_names.append((connection, db_name, True)) | ||||
|                 if test_db_name is None: | ||||
|                     test_db_name = connection.creation.create_test_db( | ||||
|                             self.verbosity, autoclobber=not self.interactive) | ||||
|                     destroy = True | ||||
|                 else: | ||||
|                     connection.settings_dict['NAME'] = test_db_name | ||||
|                     destroy = False | ||||
|                 old_names.append((connection, db_name, destroy)) | ||||
|  | ||||
|         for alias, mirror_alias in mirrored_aliases.items(): | ||||
|             mirrors.append((alias, connections[alias].settings_dict['NAME'])) | ||||
|   | ||||
| @@ -310,6 +310,40 @@ class AliasedDefaultTestSetupTest(unittest.TestCase): | ||||
|             db.connections = old_db_connections | ||||
|  | ||||
|  | ||||
| class AliasedDatabaseTest(unittest.TestCase): | ||||
|     def test_setup_aliased_databases(self): | ||||
|         from django.db.backends.dummy.base import DatabaseCreation | ||||
|  | ||||
|         runner = DjangoTestSuiteRunner(verbosity=0) | ||||
|         old_db_connections = db.connections | ||||
|         old_destroy_test_db = DatabaseCreation.destroy_test_db | ||||
|         old_create_test_db = DatabaseCreation.create_test_db | ||||
|         try: | ||||
|             destroyed_names = [] | ||||
|             DatabaseCreation.destroy_test_db = lambda self, old_database_name, verbosity=1: destroyed_names.append(old_database_name) | ||||
|             DatabaseCreation.create_test_db = lambda self, verbosity=1, autoclobber=False: self._get_test_db_name() | ||||
|  | ||||
|             db.connections = db.ConnectionHandler({ | ||||
|                 'default': { | ||||
|                     'ENGINE': 'django.db.backends.dummy', | ||||
|                     'NAME': 'dbname', | ||||
|                 }, | ||||
|                 'other': { | ||||
|                     'ENGINE': 'django.db.backends.dummy', | ||||
|                     'NAME': 'dbname', | ||||
|                 } | ||||
|             }) | ||||
|  | ||||
|             old_config = runner.setup_databases() | ||||
|             runner.teardown_databases(old_config) | ||||
|  | ||||
|             self.assertEquals(destroyed_names.count('dbname'), 1) | ||||
|         finally: | ||||
|             DatabaseCreation.create_test_db = old_create_test_db | ||||
|             DatabaseCreation.destroy_test_db = old_destroy_test_db | ||||
|             db.connections = old_db_connections | ||||
|  | ||||
|  | ||||
| class DeprecationDisplayTest(AdminScriptTestCase): | ||||
|     # tests for 19546 | ||||
|     def setUp(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user