Задать вопрос
@exctac

Django: Как создать файл пустышку для поля FileField в целях тестирования вьюхи?

Добрый день!
есть модель:
class Test(models.Model):
    file = models.FileField(_('Файл'), upload_to='files')

во вьюхе есть код:
#вывести содержимое файла
print(Test.objects.last().file.read())

Хочу протестить вьюху. В тесте создаю тестовую запись с несуществующим файлом на диске:
Test.objects.create(file='empty.txt')
Тем самый создается запись без файла так такового, и во время выполнения read(), все валиться, и понятно почему.
Так вот, есть ли возможность создать файл пустышку, который не будет храниться на диске, а например в кеше, и что бы в тесте я смог прочитать этот файл как будто бы он был полноценный?

Другими словами как в тестах можно тестировать и проверять поля типа файл?
  • Вопрос задан
  • 426 просмотров
Подписаться 2 Средний 2 комментария
Решения вопроса 1
@exctac Автор вопроса
Использовал Mock, имитирующий объект файла
mock_file = Mock(spec=django.core.files.File); mock_file.read.return_value = "fake file contents")
Test.objects.create(file=mock_file)

Подчерпнул решение тут:
https://stackoverflow.com/questions/4283933/what-i...
https://stackoverflow.com/questions/39585094/djang...

Всем спасибо за помощь!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы