Django: Как протестировать представление с login_required?

У меня есть представление в моем приложении Django с тегом @login_required:

@login_required
@require_http_methods(['GET', 'POST'])
def edit_result(request: WSGIRequest, result_id: str):
    try:
        result_type, result_number = EditResultService.split_result_id(result_id.lower())
    except Error as e:
        messages.error(request, str(e))
        return render(request, PAGE404_TEMPLATE)
    if request.POST:
        EditResultService.post_request(request, result_type, result_number)
    context = EditResultService.get_request(result_type, result_number)
    if context:
        return render(request, 'edit_result.html', context)
    else:
        return render(request, PAGE404_TEMPLATE)

Я пытаюсь написать несколько тестов, чтобы покрыть 100% этого представления, но что бы я ни делал, нет способа получить фактический ответ (не перенаправление). Вот код моего теста:

class TestViews(TestCase):

    def set_up(self):
        self.client = Client()
        self.user = User.objects.create_user('aaa', 'aaa@aaa.com', 'aaa')

.....

    def test_edit_result_get_ok(self):
        self.client.login(username='aaa', password='aaa')
        response = self.client.get(reverse('edit_result', kwargs={'result_id': 'i1'}))

        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, EDIT_RESULT_TEMPLATE)
        self.assertTrue('form' in response.context)
        messages = list(get_messages(response.wsgi_request))
        self.assertTrue(len(messages) == 0)

Есть ли способ получить мой вид и проверить используемый шаблон, сообщения...?

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