Итак, ответ на мой вопрос. Фикстура и сам тест были неправильными.
Вот правильный тест:
def test_comments_order(client, a_lot_of_comments, url_detail):
"""Проверка сортировки комментариев от старых к новым."""
response = client.get(url_detail)
response.context['news']
all_comments = [comment.created for comment in Comment.objects.all()]
sorted_dates = sorted(all_comments, reverse=False)
assert all_comments == sorted_dates
Но этот тест не будет работать без правильной фикстуры:
@pytest.fixture
def a_lot_of_comments(news, author):
now = datetime.now()
for i in range(10):
comment = Comment.objects.create(
text=f'Текст комметария {i}',
author=author,
news_id=news.id,
)
comment.created = now + timedelta(days=i)
comment.save()
В фикстуре возвращать что либо или добавлять в список каждый комментарий не нужно, достаточно заполнить БД вписав фикстуру в параметры функции.
А затем достать всё объекты из временной БД Comment.objects.all() и перебрав комменты по дате создания, засунуть их в список
all_comments . Далее сравниваем этот список с отсортированным как нам надо списком, они должны быть одинаковы.