Je voulais tester si un gros fichier (environ 200 Mo cette fois) était correctement repoussé par validation lors du POST. Je voulais, mais quand j'ai essayé de tester en utilisant un fichier d'environ 200 Mo, je me suis mis en colère contre «Erreur de mémoire».
Lorsque je me demandais ce qui s'était passé, il semble y avoir un fichier téléchargé temporaire.
test.py
from django.core.files.uploadedfile import TemporaryUploadedFile
from django.test import TestCase
#Omission
class TestClass(TestCase):
def test_testfunction(self):
form_data = {
'upload_file': TemporaryUploadedFile("test.csv", "csv", 214958080, "utf8")
}
response = self.client.post('/test/path/', form_data)
self.assertEqual(302, response.status_code, "Je n'ai pas redirigé correctement")
Il est souvent cassé, mais on dirait qu'il peut être utilisé comme ça. La capacité peut être spécifiée en unités b avec le troisième argument. Cette fois, je mets une valeur qui est un peu plus de 200 Mo. (Le chiffre change à 1024. Notez que ce n'est pas 1000.)
C'est très court, mais je me demande si c'est bon au sens commémoratif. Au fait, s'il s'agit d'une petite quantité de données, il semble y avoir ʻInMemoryUploadedFile`.
référence
https://docs.djangoproject.com/ja/3.0/_modules/django/core/files/uploadedfile/
Recommended Posts