[PYTHON] [Django] Comment tester le formulaire [TDD]

Que diriez-vous de tester les téléchargements de fichiers ...

A cause de CSRF, même si j'envoie un fichier par POST, une erreur est renvoyée! J'ai pensé, mais je savais que je devais tester le formulaire. ~~ Je voulais vraiment le tester pour voir le contexte de POST et revenir, mais je ne savais pas. Il y a peut-être un moyen, alors je l'ajouterai quand je comprendrai. ~~

Depuis qu'il a été résolu, il est résumé dans cet article.

Test de forme

Supposons que vous souhaitiez tester le formulaire ci-dessous.

forms.py


from django import forms

class FormTest(forms.Form):
    table_name=forms.CharField(max_length=30)
    file_data= forms.FileField()

Le test de téléchargement de fichier pour cela est écrit comme ci-dessous.

tests.py


from django.core.files import File
from ..forms import DocumentForm

class Test_Model_Create(TestCase):
    def setUp(self):
        self.file_data=File(open('./path/test.csv'))

    def test_step1_form(self):        
        data = {
            "table_name":"name_test"
        }
        files={                
            "file_data":self.file_data
        }
        form = DocumentForm(data,files)
        self.assertTrue(form.is_valid())

Si vous lancez les bonnes données, ʻis_valid () `retournera True.

Points obstrués et contre-mesures

Comme je l'ai écrit au début, je n'ai pas pu POSTER le fichier correctement, probablement à cause de CSRF. Après cela, je l'ai changé comme ci-dessus, mais cela ne s'est pas passé facilement. En conclusion ** La validation personnalisée était mauvaise. ** ** Eh bien, cela fonctionnait bien plutôt que mal, mais les données que j'ai écrites dans le test ne correspondaient pas. Pour éviter d'être comme vous, assurez-vous d'afficher des erreurs de validation lors du test de votre formulaire.

tests.py


print(form.errors)

Vous pouvez maintenant voir le contenu de l'erreur de validation. Veuillez vérifier si l'erreur est comme prévu.

Recommended Posts

[Django] Comment tester le formulaire [TDD]
[Django] Formulaire de connexion standard de test [TDD]
Test Django
Comment refléter CSS dans Django
Comment démarrer avec Django
Comment écrire un fichier wsgi.py indépendant de l'environnement Django1.9
[Django] Je voulais tester lors du POST d'un fichier volumineux [TDD]
Comment vérifier la version de Django
Comment supprimer des sessions expirées dans Django
Comment utiliser Google Test en langage C
Comment étudier le test Deep Learning G
Comment faire un test de sac avec python
Comment tester sur une page authentifiée par Django
Comment faire des événements envoyés par le serveur dans Django
Formulaire de demande Django 2
Formulaire suggéré par Django
Ramasser les oreilles tombées de Django Form
Formulaire de contact Django
[Python] Comment tester l'analyseur de ligne de commande cliquez sur
Ajouter dynamiquement des champs aux objets Form avec Django
Comment implémenter la fonctionnalité de type helper Rails dans Django
[Django] Comment résoudre les erreurs lors de l'installation de mysqlclient
Comment définir la base de données de Django sur Mongodb Visual Studio 2019
Comment développer une application de panier avec Django
Comment refléter ImageField dans Django + Docker (oreiller)
[Django] Comment obtenir des données en spécifiant SQL.
Comment imprimer des messages de débogage sur la console Django
Comment implémenter "named_scope" de RubyOnRails avec Django
Comment créer une API Rest dans Django
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
[Python] [Django] Comment utiliser le champ de choix et comment ajouter des options
Grattage 2 Comment gratter
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment installer Python
Comment utiliser Pandas 2
Comment lire PyPI
Comment installer pip
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment mettre à jour easy_install
Comment installer Archlinux
Comment déployer une application Django dans le cloud Alibaba
Comment utiliser pytest_report_header
Comment redémarrer gunicorn
Comment installer python
Comment héberger virtuel
Comment déboguer le sélénium
Comment utiliser le stockage Azure Table de Django (PTVS)
Comment utiliser partiel
Comment installer Google Test / Google Mock dans Visual Studio 2019
Comment utiliser Bio.Phylo
Comment lire JSON
Comment utiliser SymPy