Wie bereits im vorherigen Artikel (https://qiita.com/NomuK3/items/245b2070cd290d911294) erwähnt, möchte ich einen Test für eine Seite mit einem Formular durchführen. Aber aus irgendeinem Grund habe ich einen Fehler bekommen und konnte nicht testen. Ich dachte, ich sollte das Formular vorerst testen, aber als ich darüber nachdachte, konnte ich die Verarbeitung danach nicht testen, also half es nicht. Immerhin muss ich POST und den Kontext überprüfen.
Die Lösung ist wie folgt. Ich musste es nur mit open öffnen, den File-Handler einfügen und POSTEN.
tests.py
from django.test import TestCase, Client
from django.contrib.auth.models import User
class Test_Model_Create(TestCase):
def setUp(self):
#Testbenutzer erstellen
self.user = User.objects.create_user(username='tdd', email='[email protected]', password='test_pass')
self.client=Client()
#Einloggen
self.client.login(username='tdd', password="test_pass")
def test_step1(self):
with open('./path/test.csv') as f:
data = {
"nametest" : "test",
"file_data" : f
}
response = self.client.post('/model_create/form/', data)
self.assertIn('file_data', response.context, "Datei im Kontext_Daten sind nicht enthalten")
So ist es okay.
Der Punkt, der feststeckte, ist
File (open ('./ path / excel_test.csv'))
)Das war der Grund. Ich habe auch versucht, RequestFactory anstelle von Client zu verwenden, aber das war der Grund ...
Übrigens muss ich diesmal zwei Dateien angeben, aber in einem solchen Fall kann ich wie folgt schreiben.
tests.py
with open('./path/testA.csv') as fa,open('./path/testB.csv') as fb:
data = {
"name" : "test",
"file_dataA" : fa,
"file_dataB" : fb
}
response = self.client.post('/model_create/form/', data)
Das mit Satz ist wirklich einfach. Es ist wunderbar.
Ich frage mich wirklich, warum ich so besorgt war. Ich möchte Pokamis reduzieren.
Recommended Posts