Тест django упорядочивания пагинации на ListView с большим размером страницы
У меня есть представление с фиксированным размером пагинации 100. Мне нужно проверить правильность упорядочивания, учитывая пагинацию.
Глядя на этот пример я могу создать 100 + 1 объектов, затем проверить, что ожидаемые объекты возвращаются, но это занимает очень много времени (1 минута+).
Есть ли способ уменьшить размер пагинации на generic.ListView для тестов? По сути, я хочу проверить, что метод get_queryset возвращает правильные результаты.
Вот мой медленный тест на данный момент:
def test_custom_ordering():
"""
test that page ordering is correct, and works with pagination
standard page size is 100
NOTE populating 100 results takes a long time, thus we run all ordering tests in this method
"""
feedbacks = []
# create 101 feedbacks on consecutive days
for i in range(0, 102):
feedbacks.append(
factory.create_feedback(
date=datetime(2021, 1, 1) + timedelta(days=i),
)
)
# no ordering specified => default: requested_at
response = requests.get(f'{URL_NAME}?order_by=date')
results = response.html.findChildren("table")[0].findChildren("tr")
# expect feedback 0 (oldest) up to 101 (100 page size)
# first of results is header, so ignore
utils.check_same_results(feedbacks[:100], results[1:])