Как обслуживать медиафайлы при тестировании Django DRF с помощью APILiveServerTestCase?

У меня есть несколько тестов Django DRF, которые выглядят следующим образом:

from django.conf import settings
from rest_framework.test import APILiveServerTestCase, RequestsClient

class APITests(APILiveServerTestCase):
    def setUp(self):
        self.client = RequestsClient()

    def test_endpoints(self):
        with self.settings(MEDIA_ROOT=f"{settings.BASE_DIR}/test_media/"):
            # Upload file
            self.client.post(
                URL,
                files={"my_file": ("filename", b"abc")},
            )

            # Download the file we just uploaded
            response = self.client.get(
                URL_to_FILE,
            )

Загрузка работает нормально, но загрузка не работает с ошибкой 404, потому что тестовый веб-сервер не обслуживает медиафайлы, а точнее, не обслуживает их из моей пользовательской папки MEDIA_ROOT=f{settings.BASE_DIR}/test_media/

Добавление записей в urls.py для того, чтобы Django обслуживал медиафайлы, не сработало.

В Django, похоже, есть подкласс TestCase, специально предназначенный для этого: django.contrib.staticfiles.testing.StaticLiveServerTestCase. В DRF нет ничего подобного, но я решил, что могу сделать что-то вроде этого:

from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from rest_framework.test import APIClient

class APIStaticLiveServerTestCase(StaticLiveServerTestCase):
    client_class = APIClient

class APITests(APIStaticLiveServerTestCase):
    ....

Это тоже не сработало.

Есть ли способ заставить это работать?

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