Как протестировать представление DRF, которое обновляет данные при каждом запросе?

Я использую Django Rest Framework. У меня есть модель Listing, у которой есть атрибут view_count. Каждый раз, когда данные извлекаются из listing_detail_view, view_count обновляется с помощью метода update и выражения F. Все работает как ожидалось, но тест для представления не работает, так как view_count в ответе всегда на 1 счет больше.

// views.py
@api_view(['GET'])
def listing_detail_view(request, pk):
    listing = Listing.objects.filter(pk=pk)
    serializer = ListingSerializer(listing[0])
    
    listing.update(view_count=F('view_count') + 1)
    return Response(serializer.data)

Примечание: Я фильтрую, а не получаю, потому что, насколько я понимаю, метод update доступен только для QuerySet.

// test_views.py
def setUp(self):
    self.listing = Listing.objects.create(id=1)

def test_listing_detail_view(self):
    response = client.get(reverse('listing-detail', kwargs={'pk': self.listing.pk})) 
    listing = Listing.objects.get(pk=self.listing.pk)
    serializer = ListingSerializer(listing)
    self.assertEqual(response.data, serializer.data)

Вот AssertionError:

{'id': '1', 'view_count': '0'} != {'id': '1', 'view_count': '1'}

Как мне протестировать это представление и его функциональность обновления view_count?

Вернуться на верх