Как использовать внешние файлы для тестов Django

Мне нужно протестировать валидацию модели для проверки SVG файлов. Поэтому я хочу получить доступ к моим тестовым файлам, но столкнулся с ошибкой SuspiciousFileOperation. Я пытался получить файлы из каталога app, сохранить файлы в папке static и использовать функцию django.contrib.staticfiles.finders.find для их получения, но проблема появляется снова и снова.

Проблема заключалась в использовании абсолютного пути к файлам, что Django не разрешает и считает подобные действия подозрительными. Решением этой проблемы является использование относительного пути, который задает STATIC_URL в settings.py. В моем случае я изменил DIR_PATH на static/tests/LinkSVG и далее просто получаю доступ к своим файлам без использования дополнительных функций.

Результат:

class LinkSVGTestCase(TestCase):
    DIR_PATH = "static/tests/LinkSVG/"


    def test_svg_file(self) -> None:
        with open(path.join(self.DIR_PATH, "triangle.svg"), "rb") as file:
            link = Link.objects.create(
                name="Triangle",
                url="https://example.com/",
                icon=File(file, name=file.name)
            )
            link.full_clean()
Вернуться на верх