[PYTHON] [Django] So testen Sie Form [TDD]

Wie wäre es mit dem Testen von Datei-Uploads ...

Aufgrund von CSRF wird ein Fehler zurückgegeben, selbst wenn ich eine Datei per POST sende! Ich dachte, aber ich wusste, ich sollte das Formular testen. ~~ Ich wollte es unbedingt testen, um den Kontext von POST zu sehen und zurück zu kommen, aber ich wusste es nicht. Es kann einen Weg geben, also werde ich ihn hinzufügen, wenn ich ihn verstehe. ~~

Da es behoben wurde, ist es in [diesem Artikel] zusammengefasst (https://qiita.com/NomuK3/items/7cac7083bc270b141f05).

Formtest

Angenommen, Sie möchten das folgende Formular testen.

forms.py


from django import forms

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

Der Datei-Upload-Test hierfür ist wie folgt geschrieben.

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

Wenn Sie die richtigen Daten ausgeben, gibt is_valid () True zurück.

Verstopfte Punkte und Gegenmaßnahmen

Wie ich am Anfang schrieb, konnte ich die Datei nicht richtig POSTEN, wahrscheinlich wegen CSRF. Danach habe ich es wie oben geändert, aber es ging nicht leicht durch. Fazit ** Die benutzerdefinierte Validierung war schlecht. ** ** ** Nun, es hat eher gut als schlecht funktioniert, aber die Daten, die ich im Test geschrieben habe, stimmten nicht überein. Um nicht wie Sie selbst zu sein, stellen Sie bitte sicher, dass Sie beim Testen Ihres Formulars Validierungsfehler anzeigen.

tests.py


print(form.errors)

Jetzt können Sie den Inhalt des Validierungsfehlers sehen. Bitte überprüfen Sie, ob der Fehler wie erwartet ist.

Recommended Posts

[Django] So testen Sie Form [TDD]
[Django] Standard-Anmeldeformular testen [TDD]
Django-Test
Wie man CSS in Django reflektiert
Wie fange ich mit Django an?
Wie schreibe ich Django1.9 umweltunabhängig wsgi.py
[Django] Ich wollte testen, wenn ich eine große Datei poste [TDD]
So überprüfen Sie die Version von Django
So löschen Sie abgelaufene Sitzungen in Django
Verwendung von Google Test in C-Sprache
So studieren Sie den Deep Learning G-Test
Wie man einen Taschentest mit Python macht
So testen Sie auf einer von Django authentifizierten Seite
So führen Sie vom Server gesendete Ereignisse in Django durch
Django Anfrageformular 2
Django Vorgeschlagene Form
Hebe die gefallenen Ohren von Django Form auf
Django Kontaktformular
[Python] So testen Sie den Befehlszeilen-Parser-Klick
Fügen Sie Formularobjekten mit Django dynamisch Felder hinzu
So implementieren Sie Rails-Helfer-ähnliche Funktionen in Django
[Django] So beheben Sie Fehler bei der Installation von mysqlclient
So stellen Sie Djangos DB auf mongodb visual studio 2019 ein
So entwickeln Sie eine Cart-App mit Django
So reflektieren Sie ImageField in Django + Docker (Kissen)
[Django] So erhalten Sie Daten durch Angabe von SQL.
So drucken Sie Debug-Meldungen auf der Django-Konsole
So implementieren Sie "named_scope" von RubyOnRails mit Django
So erstellen Sie eine Rest-API in Django
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
[Python] [Django] Verwendung des Auswahlfelds und Hinzufügen von Optionen
Schaben 2 Wie man kratzt
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
So installieren Sie Python
Verwendung von Pandas 2
Wie man PyPI liest
So installieren Sie pip
Verwendung von Virtualenv
Verwendung von numpy.vectorize
So aktualisieren Sie easy_install
So installieren Sie archlinux
So stellen Sie eine Django-Anwendung in der Alibaba-Cloud bereit
Verwendung von pytest_report_header
Wie man Gunicorn neu startet
So installieren Sie Python
Wie zum virtuellen Host
Wie man Selen debuggt
Verwendung des Azure Table-Speichers von Django (PTVS)
Wie man teilweise verwendet
So installieren Sie Google Test / Google Mock in Visual Studio 2019
Wie man Bio.Phylo benutzt
Wie man JSON liest
Verwendung von SymPy