Skip to content

Commit e50e249

Browse files
committed
adapt tests for ObjectIdAutoField
1 parent 7284391 commit e50e249

File tree

130 files changed

+1213
-815
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+1213
-815
lines changed

tests/admin_changelist/tests.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -875,7 +875,7 @@ def test_no_distinct_for_m2m_in_list_filter_without_params(self):
875875
self.assertIs(cl.queryset.query.distinct, False)
876876

877877
# A ManyToManyField in params does have distinct applied.
878-
request = self.factory.get("/band/", {"genres": "0"})
878+
request = self.factory.get("/band/", {"genres": "000000000000000000000000"})
879879
request.user = self.superuser
880880
cl = m.get_changelist_instance(request)
881881
self.assertIs(cl.queryset.query.distinct, True)
@@ -993,14 +993,19 @@ def test_dynamic_list_display_links(self):
993993
"""
994994
parent = Parent.objects.create(name="parent")
995995
for i in range(1, 10):
996-
Child.objects.create(id=i, name="child %s" % i, parent=parent, age=i)
996+
Child.objects.create(
997+
id=f"{i:024}",
998+
name="child %s" % i,
999+
parent=parent,
1000+
age=i,
1001+
)
9971002

9981003
m = DynamicListDisplayLinksChildAdmin(Child, custom_site)
9991004
superuser = self._create_superuser("superuser")
10001005
request = self._mocked_authenticated_request("/child/", superuser)
10011006
response = m.changelist_view(request)
10021007
for i in range(1, 10):
1003-
link = reverse("admin:admin_changelist_child_change", args=(i,))
1008+
link = reverse("admin:admin_changelist_child_change", args=(f"{i:024}",))
10041009
self.assertContains(response, '<a href="%s">%s</a>' % (link, i))
10051010

10061011
list_display = m.get_list_display(request)
@@ -1277,7 +1282,7 @@ def test_deterministic_order_for_unordered_model(self):
12771282
superuser = self._create_superuser("superuser")
12781283

12791284
for counter in range(1, 51):
1280-
UnorderedObject.objects.create(id=counter, bool=True)
1285+
UnorderedObject.objects.create(id=f"{counter:024}", bool=True)
12811286

12821287
class UnorderedObjectAdmin(admin.ModelAdmin):
12831288
list_per_page = 10
@@ -1293,7 +1298,7 @@ def check_results_order(ascending=False):
12931298
response = model_admin.changelist_view(request)
12941299
for result in response.context_data["cl"].result_list:
12951300
counter += 1 if ascending else -1
1296-
self.assertEqual(result.id, counter)
1301+
self.assertEqual(str(result.id), f"{counter:024}")
12971302
custom_site.unregister(UnorderedObject)
12981303

12991304
# When no order is defined at all, everything is ordered by '-pk'.
@@ -1323,7 +1328,7 @@ def test_deterministic_order_for_model_ordered_by_its_manager(self):
13231328
superuser = self._create_superuser("superuser")
13241329

13251330
for counter in range(1, 51):
1326-
OrderedObject.objects.create(id=counter, bool=True, number=counter)
1331+
OrderedObject.objects.create(id=f"{counter:024}", bool=True, number=counter)
13271332

13281333
class OrderedObjectAdmin(admin.ModelAdmin):
13291334
list_per_page = 10
@@ -1339,7 +1344,7 @@ def check_results_order(ascending=False):
13391344
response = model_admin.changelist_view(request)
13401345
for result in response.context_data["cl"].result_list:
13411346
counter += 1 if ascending else -1
1342-
self.assertEqual(result.id, counter)
1347+
self.assertEqual(str(result.id), f"{counter:024}")
13431348
custom_site.unregister(OrderedObject)
13441349

13451350
# When no order is defined at all, use the model's default ordering

tests/admin_checks/tests.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ def test_checks_are_performed(self):
7676
admin.site.register(Song, MyAdmin)
7777
try:
7878
errors = checks.run_checks()
79-
expected = ["error!"]
80-
self.assertEqual(errors, expected)
79+
self.assertIn("error!", errors)
8180
finally:
8281
admin.site.unregister(Song)
8382

@@ -267,8 +266,7 @@ class CustomAdminSite(admin.AdminSite):
267266
custom_site.register(Song, MyAdmin)
268267
try:
269268
errors = checks.run_checks()
270-
expected = ["error!"]
271-
self.assertEqual(errors, expected)
269+
self.assertIn("error!", errors)
272270
finally:
273271
custom_site.unregister(Song)
274272

tests/admin_inlines/tests.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -501,8 +501,10 @@ def test_localize_pk_shortcut(self):
501501
The "View on Site" link is correct for locales that use thousand
502502
separators.
503503
"""
504-
holder = Holder.objects.create(pk=123456789, dummy=42)
505-
inner = Inner.objects.create(pk=987654321, holder=holder, dummy=42, readonly="")
504+
holder = Holder.objects.create(pk="000000000000000123456789", dummy=42)
505+
inner = Inner.objects.create(
506+
pk="000000000000000987654321", holder=holder, dummy=42, readonly=""
507+
)
506508
response = self.client.get(
507509
reverse("admin:admin_inlines_holder_change", args=(holder.id,))
508510
)
@@ -936,7 +938,7 @@ def setUpTestData(cls):
936938
)
937939
cls.user.user_permissions.add(permission)
938940

939-
author = Author.objects.create(pk=1, name="The Author")
941+
author = Author.objects.create(pk="000000000000000000000001", name="The Author")
940942
cls.book = author.books.create(name="The inline Book")
941943
cls.author_change_url = reverse(
942944
"admin:admin_inlines_author_change", args=(author.id,)

tests/admin_views/admin.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,11 +288,13 @@ def has_module_permission(self, request):
288288
class RowLevelChangePermissionModelAdmin(admin.ModelAdmin):
289289
def has_change_permission(self, request, obj=None):
290290
"""Only allow changing objects with even id number"""
291-
return request.user.is_staff and (obj is not None) and (obj.id % 2 == 0)
291+
return (
292+
request.user.is_staff and (obj is not None) and (int(str(obj.id)) % 2 == 0)
293+
)
292294

293295
def has_view_permission(self, request, obj=None):
294296
"""Only allow viewing objects if id is a multiple of 3."""
295-
return request.user.is_staff and obj is not None and obj.id % 3 == 0
297+
return request.user.is_staff and obj is not None and int(str(obj.id)) % 3 == 0
296298

297299

298300
class CustomArticleAdmin(admin.ModelAdmin):
@@ -467,7 +469,7 @@ def save_related(self, request, form, formsets, change):
467469

468470
class EmptyModelAdmin(admin.ModelAdmin):
469471
def get_queryset(self, request):
470-
return super().get_queryset(request).filter(pk__gt=1)
472+
return super().get_queryset(request).filter(pk__gt="000000000000000000000001")
471473

472474

473475
class OldSubscriberAdmin(admin.ModelAdmin):
@@ -644,7 +646,9 @@ class FieldOverridePostAdmin(PostAdmin):
644646

645647
class CustomChangeList(ChangeList):
646648
def get_queryset(self, request):
647-
return self.root_queryset.order_by("pk").filter(pk=9999) # Doesn't exist
649+
return self.root_queryset.order_by("pk").filter(
650+
pk="000000000000000000000000"
651+
) # Doesn't exist
648652

649653

650654
class GadgetAdmin(admin.ModelAdmin):

tests/admin_views/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -940,7 +940,7 @@ def get_queryset(self):
940940

941941
class FilteredManager(models.Model):
942942
def __str__(self):
943-
return "PK=%d" % self.pk
943+
return "PK=%s" % self.pk
944944

945945
pk_gt_1 = _Manager()
946946
objects = models.Manager()

tests/admin_views/test_actions.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,11 @@ def test_model_admin_default_delete_action(self):
8989
self.assertEqual(Subscriber.objects.count(), 0)
9090

9191
def test_default_delete_action_nonexistent_pk(self):
92-
self.assertFalse(Subscriber.objects.filter(id=9998).exists())
92+
self.assertFalse(
93+
Subscriber.objects.filter(id="000000000000000000009998").exists()
94+
)
9395
action_data = {
94-
ACTION_CHECKBOX_NAME: ["9998"],
96+
ACTION_CHECKBOX_NAME: ["000000000000000000009998"],
9597
"action": "delete_selected",
9698
"index": 0,
9799
}
@@ -109,7 +111,7 @@ def test_non_localized_pk(self):
109111
If USE_THOUSAND_SEPARATOR is set, the ids for the objects selected for
110112
deletion are rendered without separators.
111113
"""
112-
s = ExternalSubscriber.objects.create(id=9999)
114+
s = ExternalSubscriber.objects.create(id="000000000000000000009999")
113115
action_data = {
114116
ACTION_CHECKBOX_NAME: [s.pk, self.s2.pk],
115117
"action": "delete_selected",
@@ -119,7 +121,7 @@ def test_non_localized_pk(self):
119121
reverse("admin:admin_views_subscriber_changelist"), action_data
120122
)
121123
self.assertTemplateUsed(response, "admin/delete_selected_confirmation.html")
122-
self.assertContains(response, 'value="9999"') # Instead of 9,999
124+
self.assertContains(response, 'value="000000000000000000009999"')
123125
self.assertContains(response, 'value="%s"' % self.s2.pk)
124126

125127
def test_model_admin_default_delete_action_protected(self):

0 commit comments

Comments
 (0)