Как сделать POST-запрос внутри Test.py в Django с аутентифицированным пользователем?
Я пытаюсь найти способ тестирования POST-запроса, который требует аутентифицированного пользователя в Django.
Я использую опцию login-option, как описано в документации здесь: https://docs.djangoproject.com/en/3.2/topics/testing/tools/#django.test.Client.login
И я использую метод client.post, как описано здесь: https://docs.djangoproject.com/en/3.2/topics/testing/tools/#django.test.Client.post
Однако мой ответ печатается как "None", и я получаю 403, а не 200, как должно быть в моем представлении. Он работает нормально, когда я пробую его с помощью postman, так что проблема не в этом.
Мой тест
def test_post_new_task_authorized_user(self):
self.client.login(username="xxx", password="password123")
data = {
"title": "A new post",
"description": "Description of post",
"responsible_username": "xxx",
}
response = self.client.post(
reverse("CUDtasks"), data, content_type="application/json"
)
print("REPONSE IS: %s" % response.context)
self.assertEqual(response.status_code, 200)
Код ошибки теста
FAIL: test_post_new_task_authorized_user (todo.tests.TodoTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/xxxx/Documents/Programmering/xxxx/myproject/todo/tests.py", line 140, in test_post_new_task_authorized_user
self.assertEqual(response.status_code, 200)
AssertionError: 403 != 200
----------------------------------------------------------------------
Ran 4 tests in 0.084s