При запуске тестов я хотел бы создать, а затем удалить некоторые ресурсы. Доступ к целевому серверу требует аутентификации с помощью токена.
from django.test import TestCase
from rest_framework.test import APIClient
(...)
class MyTest(TestCase):
def setUp(self):
self.client = APIClient()
def test_creation_and_deletion(self):
payload = {"key": "value"}
# This works, but it's handled by a custom create() method from views.py:
res = self.client.post(<url>, payload)
(...)
# This doesn't work, no custom delete() method is defined anywhere:
tar_headers = {"private-token": "<token>"}
res2 = self.client.delete(res.data["target_resource_url"], headers=tar_headers)
# Either this doesn't work:
self.client.headers.update(tar_headers)
res3 = self.client.delete(res.data["target_resource_url"])
Печать res2
дает следующий вывод:
<HttpResponseNotFound status_code=404, "text/html">
Вызов res3
выдает ошибку:
AttributeError: 'APIClient' object has no attribute 'headers'
Запросы на удаление, отправленные на target_resource_url
, например, от Почтальона, работают нормально, если токен указан в заголовках.
Как решить эту проблему?