mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Black 23.1.0 is released which, as the first release of the year, introduces the 2023 stable style. This incorporates most of last year's preview style. https://github.com/psf/black/releases/tag/23.1.0
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.contrib.auth.models import Permission
 | |
| from django.contrib.contenttypes.models import ContentType
 | |
| from django.core import management
 | |
| from django.test import TestCase, override_settings
 | |
| 
 | |
| from .models import Article
 | |
| 
 | |
| 
 | |
| class SwappableModelTests(TestCase):
 | |
|     # Limit memory usage when calling 'migrate'.
 | |
|     available_apps = [
 | |
|         "swappable_models",
 | |
|         "django.contrib.auth",
 | |
|         "django.contrib.contenttypes",
 | |
|     ]
 | |
| 
 | |
|     @override_settings(TEST_ARTICLE_MODEL="swappable_models.AlternateArticle")
 | |
|     def test_generated_data(self):
 | |
|         "Permissions and content types are not created for a swapped model"
 | |
| 
 | |
|         # Delete all permissions and content_types
 | |
|         Permission.objects.filter(content_type__app_label="swappable_models").delete()
 | |
|         ContentType.objects.filter(app_label="swappable_models").delete()
 | |
| 
 | |
|         # Re-run migrate. This will re-build the permissions and content types.
 | |
|         management.call_command("migrate", interactive=False, verbosity=0)
 | |
| 
 | |
|         # Content types and permissions exist for the swapped model,
 | |
|         # but not for the swappable model.
 | |
|         apps_models = [
 | |
|             (p.content_type.app_label, p.content_type.model)
 | |
|             for p in Permission.objects.all()
 | |
|         ]
 | |
|         self.assertIn(("swappable_models", "alternatearticle"), apps_models)
 | |
|         self.assertNotIn(("swappable_models", "article"), apps_models)
 | |
| 
 | |
|         apps_models = [(ct.app_label, ct.model) for ct in ContentType.objects.all()]
 | |
|         self.assertIn(("swappable_models", "alternatearticle"), apps_models)
 | |
|         self.assertNotIn(("swappable_models", "article"), apps_models)
 | |
| 
 | |
|     @override_settings(TEST_ARTICLE_MODEL="swappable_models.article")
 | |
|     def test_case_insensitive(self):
 | |
|         "Model names are case insensitive. Model swapping honors this."
 | |
|         Article.objects.all()
 | |
|         self.assertIsNone(Article._meta.swapped)
 |