mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[1.10.x] Fixed #27461 -- Fixed incorrect allow_migrate() arguments in makemigrations.
Backport of 373c6c409c from master
			
			
This commit is contained in:
		| @@ -104,7 +104,7 @@ class Command(BaseCommand): | |||||||
|                     # At least one model must be migrated to the database. |                     # At least one model must be migrated to the database. | ||||||
|                     router.allow_migrate(connection.alias, app_label, model_name=model._meta.object_name) |                     router.allow_migrate(connection.alias, app_label, model_name=model._meta.object_name) | ||||||
|                     for app_label in consistency_check_labels |                     for app_label in consistency_check_labels | ||||||
|                     for model in apps.get_models(app_label) |                     for model in apps.get_app_config(app_label).get_models() | ||||||
|             )): |             )): | ||||||
|                 loader.check_consistent_history(connection) |                 loader.check_consistent_history(connection) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,3 +12,7 @@ Bugfixes | |||||||
| * Quoted the Oracle test user's password in queries to fix the "ORA-00922: | * Quoted the Oracle test user's password in queries to fix the "ORA-00922: | ||||||
|   missing or invalid option" error when the password starts with a number or |   missing or invalid option" error when the password starts with a number or | ||||||
|   special character (:ticket:`27420`). |   special character (:ticket:`27420`). | ||||||
|  |  | ||||||
|  | * Fixed incorrect ``app_label`` / ``model_name`` arguments for | ||||||
|  |   ``allow_migrate()`` in ``makemigrations`` migration consistency checks | ||||||
|  |   (:ticket:`27461`). | ||||||
|   | |||||||
| @@ -598,6 +598,7 @@ class MakeMigrationsTests(MigrationTestBase): | |||||||
|                 init_file = os.path.join(migration_dir, '__init__.py') |                 init_file = os.path.join(migration_dir, '__init__.py') | ||||||
|                 self.assertTrue(os.path.exists(init_file)) |                 self.assertTrue(os.path.exists(init_file)) | ||||||
|  |  | ||||||
|  |     @override_settings(INSTALLED_APPS=['migrations', 'migrations2']) | ||||||
|     def test_makemigrations_consistency_checks_respect_routers(self): |     def test_makemigrations_consistency_checks_respect_routers(self): | ||||||
|         """ |         """ | ||||||
|         The history consistency checks in makemigrations respect |         The history consistency checks in makemigrations respect | ||||||
| @@ -638,7 +639,15 @@ class MakeMigrationsTests(MigrationTestBase): | |||||||
|                 with self.settings(DATABASE_ROUTERS=['migrations.routers.TestRouter']): |                 with self.settings(DATABASE_ROUTERS=['migrations.routers.TestRouter']): | ||||||
|                     with mock.patch.object(TestRouter, 'allow_migrate', return_value=False) as allow_migrate: |                     with mock.patch.object(TestRouter, 'allow_migrate', return_value=False) as allow_migrate: | ||||||
|                         call_command('makemigrations', 'migrations', verbosity=0) |                         call_command('makemigrations', 'migrations', verbosity=0) | ||||||
|                 allow_migrate.assert_called_with('other', 'migrations', model_name='UnicodeModel') |                 allow_migrate.assert_any_call('other', 'migrations', model_name='UnicodeModel') | ||||||
|  |                 # allow_migrate() is called with the correct arguments. | ||||||
|  |                 self.assertGreater(len(allow_migrate.mock_calls), 0) | ||||||
|  |                 for mock_call in allow_migrate.mock_calls: | ||||||
|  |                     _, call_args, call_kwargs = mock_call | ||||||
|  |                     connection_alias, app_name = call_args | ||||||
|  |                     self.assertIn(connection_alias, ['default', 'other']) | ||||||
|  |                     # Raises an error if invalid app_name/model_name occurs. | ||||||
|  |                     apps.get_app_config(app_name).get_model(call_kwargs['model_name']) | ||||||
|                 self.assertEqual(ensure_schema.call_count, 4) |                 self.assertEqual(ensure_schema.call_count, 4) | ||||||
|  |  | ||||||
|     def test_failing_migration(self): |     def test_failing_migration(self): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user