diff options
| author | Tim Graham <timograham@gmail.com> | 2026-05-24 14:11:37 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-24 20:11:37 +0200 |
| commit | f57a90073920f1c34096d062e151a7bd79065f01 (patch) | |
| tree | 5640537a6bacb4e25a1040675e97c4ec3759ce24 | |
| parent | a53e02af6d7a07d0367b534f7107a0e2a37e3d34 (diff) | |
Removed integer pk assumption in AdminCustomQuerysetTest.
| -rw-r--r-- | tests/admin_views/admin.py | 8 | ||||
| -rw-r--r-- | tests/admin_views/models.py | 4 | ||||
| -rw-r--r-- | tests/admin_views/tests.py | 44 |
3 files changed, 32 insertions, 24 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index a0ecd99c25..fe73c04943 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -61,7 +61,6 @@ from .models import ( CyclicTwo, DependentChild, DooHickey, - EmptyModel, EmptyModelHidden, EmptyModelMixin, EmptyModelVisible, @@ -77,6 +76,7 @@ from .models import ( Gadget, Gallery, GenRelReference, + GetQuerySetModel, Grommet, ImplicitlyGeneratedPK, Ingredient, @@ -542,9 +542,9 @@ class ParentAdmin(admin.ModelAdmin): child.save() -class EmptyModelAdmin(admin.ModelAdmin): +class GetQuerySetModelAdmin(admin.ModelAdmin): def get_queryset(self, request): - return super().get_queryset(request).filter(pk__gt=1) + return super().get_queryset(request).filter(deleted=False) class OldSubscriberAdmin(admin.ModelAdmin): @@ -1333,7 +1333,7 @@ site.register(OldSubscriber, OldSubscriberAdmin) site.register(Podcast, PodcastAdmin) site.register(Vodcast, VodcastAdmin) site.register(Parent, ParentAdmin) -site.register(EmptyModel, EmptyModelAdmin) +site.register(GetQuerySetModel, GetQuerySetModelAdmin) site.register(Fabric, FabricAdmin) site.register(Gallery, GalleryAdmin) site.register(Picture, PictureAdmin) diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py index 995391cb39..13f092d0b4 100644 --- a/tests/admin_views/models.py +++ b/tests/admin_views/models.py @@ -390,7 +390,9 @@ class Toy(models.Model): child = models.ForeignKey(PKChild, models.CASCADE) -class EmptyModel(models.Model): +class GetQuerySetModel(models.Model): + deleted = models.BooleanField(default=False) + def __str__(self): return "Primary key = %s" % self.id diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index af6bf07e98..b6c4e88a43 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -80,7 +80,6 @@ from .models import ( CyclicTwo, DooHickey, Employee, - EmptyModel, Fabric, FancyDoodad, FieldOverridePost, @@ -89,6 +88,7 @@ from .models import ( FoodDelivery, FunkyTag, Gallery, + GetQuerySetModel, Grommet, Inquisition, Language, @@ -5454,7 +5454,8 @@ class AdminCustomQuerysetTest(TestCase): cls.superuser = User.objects.create_superuser( username="super", password="secret", email="super@example.com" ) - cls.pks = [EmptyModel.objects.create().id for i in range(3)] + cls.obj = GetQuerySetModel.objects.create() + cls.deleted_obj = GetQuerySetModel.objects.create(deleted=True) def setUp(self): self.client.force_login(self.superuser) @@ -5465,12 +5466,11 @@ class AdminCustomQuerysetTest(TestCase): } def test_changelist_view(self): - response = self.client.get(reverse("admin:admin_views_emptymodel_changelist")) - for i in self.pks: - if i > 1: - self.assertContains(response, "Primary key = %s" % i) - else: - self.assertNotContains(response, "Primary key = %s" % i) + # The changelist filters objects using ModelAdmin.get_queryset(). + url = reverse("admin:admin_views_getquerysetmodel_changelist") + response = self.client.get(url) + self.assertContains(response, str(self.obj)) + self.assertNotContains(response, str(self.deleted_obj)) def test_changelist_view_count_queries(self): # create 2 Person objects @@ -5501,17 +5501,23 @@ class AdminCustomQuerysetTest(TestCase): self.assertEqual(resp.context["selection_note_all"], "1 selected") def test_change_view(self): - for i in self.pks: - url = reverse("admin:admin_views_emptymodel_change", args=(i,)) - response = self.client.get(url, follow=True) - if i > 1: - self.assertEqual(response.status_code, 200) - else: - self.assertRedirects(response, reverse("admin:index")) - self.assertEqual( - [m.message for m in response.context["messages"]], - ["empty model with ID “1” doesn’t exist. Perhaps it was deleted?"], - ) + # The change view filters objects using ModelAdmin.get_queryset(). + url = reverse("admin:admin_views_getquerysetmodel_change", args=(self.obj.pk,)) + response = self.client.get(url, follow=True) + self.assertEqual(response.status_code, 200) + # The deleted object isn't accessible. + url = reverse( + "admin:admin_views_getquerysetmodel_change", args=(self.deleted_obj.pk,) + ) + response = self.client.get(url, follow=True) + self.assertRedirects(response, reverse("admin:index")) + self.assertEqual( + [m.message for m in response.context["messages"]], + [ + f"get query set model with ID “{self.deleted_obj.pk}” doesn’t " + "exist. Perhaps it was deleted?" + ], + ) def test_add_model_modeladmin_defer_qs(self): # Test for #14529. defer() is used in ModelAdmin.get_queryset() |
