Тестирование представления, использующего TemporaryUploadedFile
У меня есть представление, которое делает следующее:
import pandas as pd
def ingest(request):
for temp_file in request.FILES.values():
# There only ever is one use next(gen) if you prefer
path = temp_file.temporary_file_path()
break
df = pd.read_csv( path, encoding="UTF-16-le", header=None )
...
И я хотел бы протестировать это представление. Я не могу изменить логику представления, поскольку оно предназначено для конечной точки внешней службы, которую я не могу контролировать.
Я добавил FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.TemporaryFileUploadHandler',]
в настройки, чтобы избежать неприятных сюрпризов, но не могу заставить тесты работать.
Мой test.py
:
from django.core.files.uploadedfile import TemporaryUploadedFile
from django.test import TestCase
class InputTest(TestCase):
def test_extract_csv(self):
form_data = {
'upload_file': TemporaryUploadedFile("data/test.csv", "csv", 88614, "utf-16-le")
}
self.client.post("/ingest", form_data)
но это приводит к пустым данным в представлении.