Ich wollte testen, ob eine große Datei (diesmal etwa 200 MB) beim POST durch Validierung korrekt abgestoßen wurde. Ich wollte, aber als ich tatsächlich versuchte, mit einer Datei von ungefähr 200 MB zu testen, wurde ich wütend auf "Memory Error".
Als ich mich fragte, was passiert ist, scheint es eine temporäre hochgeladene Datei zu geben.
test.py
from django.core.files.uploadedfile import TemporaryUploadedFile
from django.test import TestCase
#Unterlassung
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, "Ich habe nicht richtig umgeleitet")
Es ist viel kaputt, aber es sieht so aus, als ob es so verwendet werden kann. Die Kapazität kann mit dem dritten Argument in b-Einheiten angegeben werden. Dieses Mal habe ich einen Wert angegeben, der etwas über 200 MB liegt. (Die Ziffer ändert sich bei 1024. Beachten Sie, dass es nicht 1000 ist.)
Es ist sehr kurz, aber ich frage mich, ob es in einem denkwürdigen Sinne gut ist. Übrigens scheint es auch "InMemoryUploadedFile" für eine kleine Datenmenge zu geben.
Referenz
https://docs.djangoproject.com/ja/3.0/_modules/django/core/files/uploadedfile/
Recommended Posts