Во время модульного тестирования и функционального тестирования 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
Перед выполнением каждого теста создается пользователь, а во время создания пользователя ему назначается профиль pi c 'по умолчанию. jpg '. Это приводит к сбою каждого теста, поскольку ни папка profile_pics, ни изображение default.jpg не существуют. Если бы он не взломал sh здесь, он бы взломал sh позже, так как он попытался бы сохранить файлы в папках, расположенных в MEDIA, которых не будет в моем временном файле.
Как я могу удалить все файлы после тестирования без использования Django Cleanup? Или как я могу создать временный медиафайл (аналогично тому, что я уже делаю), а также файловую структуру в нем (он также должен будет включать изображение default.jpg, которое необходимо во время создания пользователя)?
Спасибо.