1
0
mirror of https://github.com/django/django.git synced 2024-12-28 03:55:50 +00:00
django/tests/swappable_models/tests.py
David Smith 80aae83439 [4.2.x] Refs #33476 -- Applied Black's 2023 stable style.
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

Backport of 097e3a70c1 from main
2023-02-01 11:37:29 +01:00

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)