[PYTHON] [Django] Je voulais tester lors du POST d'un fichier volumineux [TDD]

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».

Vous pouvez créer quelque chose comme des données factices!

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.)

Résumé

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

[Django] Je voulais tester lors du POST d'un fichier volumineux [TDD]
Test Django
[Django] Comment tester le formulaire [TDD]
Tester la sortie standard avec Pytest
[Django] Je voulais tester lors du POST d'un fichier volumineux [TDD]
Développement piloté par les tests avec Django Partie 4
Développement piloté par les tests avec Django Partie 6
Développement piloté par les tests avec Django Partie 2
[Test Driven Development (TDD)] Chapitre 21 Résumé
Développement piloté par les tests avec Django Partie 1
Développement piloté par les tests avec Django Partie 5
[Django] Test pour envoyer un fichier par POST et vérifier le contexte retourné [TDD]
[Django] Comment tester le formulaire [TDD]
Je ne veux pas passer un test de codage
Je veux écrire dans un fichier avec Python
Je souhaite télécharger une application Django sur heroku
Je veux écrire en Python! (2) Écrivons un test
Que faire lorsque gdal_merge génère un fichier énorme
Je veux échantillonner au hasard un fichier avec Python
Une histoire sur la volonté de modifier un peu le site d'administration de Django
Une histoire que je voulais faire quand j'ai eu une liste de sessions d'étude avec Python
[Django] Mémorandum lorsque vous souhaitez communiquer de manière asynchrone [Python3]
Je voulais ignorer certaines extensions lors de la création de la documentation Sphinx
J'ai fait une commande pour générer un commentaire pour une table dans Django
J'ai trébuché lorsque j'ai essayé d'installer Basemap, donc un mémorandum
[Django] Le test ne fonctionne pas si je change l'emplacement du fichier
Télécharger un fichier sur Dropbox
J'ai essayé de transformer un fichier Python en un EXE (erreur de récursivité prise en charge)
Je voulais le faire comme exécuter un cas de test pour AtCoder.
Un mémorandum lors de l'acquisition automatique avec du sélénium
Python> J'ai créé un code de test pour mon propre fichier externe
Je voulais créer une présentation intelligente avec Jupyter Notebook + nb present
Je voulais convertir ma photo de visage en un style Yuyu.
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
Je voulais résoudre le problème ABC164 A ~ D avec Python
Comment créer une grande quantité de données de test dans MySQL? ??
Ce que j'ai fait quand je voulais rendre Python plus rapide -Édition Numba-
[Python] Quand j'ai essayé de créer un outil de décompression avec un fichier zip que je connaissais juste, j'étais accro à sys.exit ()
Django super introduction par les débutants Python! Partie 3 J'ai essayé d'utiliser la fonction d'héritage de fichier de modèle
Je souhaite résoudre le problème de fuite de mémoire lors de la sortie d'un grand nombre d'images avec Matplotlib
Étapes pour créer un projet Django
Chaîne de hachage que je voulais éviter (2)
Écrire la sortie standard dans un fichier
Je voulais faire évoluer cGAN vers ACGAN
Chaîne de hachage que je voulais éviter (1)
Comment créer un fichier de configuration
Créer un téléchargeur de fichiers avec Django
Je voulais générer une phrase comme "Fucking Rashomon" (ancienne forme)
J'obtiens un UnicodeDecodeError en essayant de me connecter à oracle avec python sqlalchemy
J'ai créé un programme pour vous avertir par LINE lorsque les commutateurs arrivent
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
J'ai essayé de vérifier le résultat du test A / B avec le test du chi carré
Quand je retourne en utilisant le chainer, ça va un peu
Lors de l'écriture d'un test en utilisant DB avec django, il peut être plus rapide d'utiliser `setUpTestData ()`