Написание интеграционного теста Django ListView

Как написать интеграционный тест следующего представления списка в django? Мне нужен пример.

class HomeView(ListView):
    model = Donor
    template_name = 'recipient/home.html'
    context_object_name = 'donors'
    paginate_by = 10

    def get_queryset(self):
        form = self.request.GET.get('q')
        if form:
            return Donor.objects.filter(
                Q(name__icontains=form) |
                Q(location__icontains=form) | 
                Q(sex__icontains=form) | 
                Q(age__icontains=form) | 
                Q(blood_group__icontains=form)
            ).order_by('id')
        queryset = Donor.objects.all().order_by('id')
        return queryset

    def get_context_data(self, **kwargs):
        kwargs['q'] = self.request.GET.get('q')
        return super().get_context_data(**kwargs)

Django rest framework предоставляет очень удобную тестовую структуру.

В своем тесте вы должны сымитировать запрос API к вашей конечной точке, а затем проверить, соответствует ли ответ запроса тому, что вы ожидали.

В качестве примера. в своем тесте вы можете создать несколько экземпляров Donor для запроса, сделать запрос и затем посмотреть, содержит ли ответ доноров, которых вы ожидали. Вы можете добавить фильтры к запросу, чтобы проверить, работают ли они, например.

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