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)
Есть ли способ получить мой вид и проверить используемый шаблон, сообщения...?