Во время модульного тестирования и функционального тестирования Selenium создаются файлы, которые впоследствии не очищаются. Я потратил очень много времени, пытаясь заставить django-cleanup работать, но это просто работает ничего такого.
Я полагаю, что мне нужно создать временную файловую структуру, в которую файлы можно загружать во время тестирования, а затем уничтожать. Вот как я создал временный файл MEDIA_ROOT:
MEDIA_ROOT = tempfile.mkdtemp()
@override_settings(MEDIA_ROOT=MEDIA_ROOT)
class UnitTest(TestCase):
@classmethod
def tearDownClass(cls):
shutil.rmtree(MEDIA_ROOT, ignore_errors=True)
super().tearDownClass()
Проблема в том, что хотя я и создал временную папку MEDIA_ROOT, она не создает подпапки и файлы.
Моя файловая структура в моем проекте выглядит так
MEDIA_ROOT
profile_pics
default.jpg
user_files
Перед выполнением каждого теста создается пользователь, и во время создания пользователя ему присваивается изображение профиля «default.jpg». Это приводит к сбою каждого теста, поскольку ни папки profile_pics, ни изображения default.jpg не существует. Если он не рухнет здесь, он рухнет позже, поскольку попытается сохранить файлы в папках, расположенных в МЕДИА, которых не будет в моем временном файле.
Как я могу удалить все файлы после тестирования без использования Django Cleanup? Или как я могу создать временный медиафайл (аналогично тому, что я уже делаю), а также файловую структуру внутри него (он также должен включать изображение default.jpg, которое необходимо при создании пользователя)?
Спасибо.