summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2026-05-24 14:11:37 -0400
committerGitHub <noreply@github.com>2026-05-24 20:11:37 +0200
commitf57a90073920f1c34096d062e151a7bd79065f01 (patch)
tree5640537a6bacb4e25a1040675e97c4ec3759ce24
parenta53e02af6d7a07d0367b534f7107a0e2a37e3d34 (diff)
Removed integer pk assumption in AdminCustomQuerysetTest.
-rw-r--r--tests/admin_views/admin.py8
-rw-r--r--tests/admin_views/models.py4
-rw-r--r--tests/admin_views/tests.py44
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()