| 226 | def test_pagination(self): |
| 227 | """ |
| 228 | Regression tests for #12893: Pagination in admins changelist doesn't |
| 229 | use queryset set by modeladmin. |
| 230 | """ |
| 231 | parent = Parent.objects.create(name='anything') |
| 232 | for i in range(30): |
| 233 | Child.objects.create(name='name %s' % i, parent=parent) |
| 234 | Child.objects.create(name='filtered %s' % i, parent=parent) |
| 235 | |
| 236 | request = MockRequest() |
| 237 | |
| 238 | # Test default queryset |
| 239 | m = ChildAdmin(Child, admin.site) |
| 240 | cl = ChangeList(request, Child, m.list_display, m.list_display_links, |
| 241 | m.list_filter, m.date_hierarchy, m.search_fields, |
| 242 | m.list_select_related, m.list_per_page, m.list_editable, m) |
| 243 | self.assertEqual(cl.query_set.count(), 60) |
| 244 | self.assertEqual(cl.paginator.count, 60) |
| 245 | self.assertEqual(cl.paginator.page_range, [1, 2, 3, 4, 5, 6]) |
| 246 | |
| 247 | # Test custom queryset |
| 248 | m = FilteredChildAdmin(Child, admin.site) |
| 249 | cl = ChangeList(request, Child, m.list_display, m.list_display_links, |
| 250 | m.list_filter, m.date_hierarchy, m.search_fields, |
| 251 | m.list_select_related, m.list_per_page, m.list_editable, m) |
| 252 | self.assertEqual(cl.query_set.count(), 30) |
| 253 | self.assertEqual(cl.paginator.count, 30) |
| 254 | self.assertEqual(cl.paginator.page_range, [1, 2, 3]) |
| 255 | |