Ho la seguente logica a mio avviso:Django - come unità di testare una richiesta POST utilizzando request.FILES
def view_function(request):
if request.method == 'POST':
uploadform = UploadFileForm(request.POST, request.FILES)
if uploadform.is_valid():
#do stuff
Dove UploadFileForm equivale a:
class UploadFileForm(forms.Form):
file = forms.FileField()
sto cercando di scrivere all'unità prova per questa vista. Guardando in docs Django, il modo suggerito è questo:
class test_stuffTest(TestCase):
def setUp(self):
self.client = django.test.client.Client()
...
def test_stuff(self):
myfile = open('....\file.csv','r')
response = self.client.post('/', {'name':'file.csv','attachment':myfile})
#check response
Il mio obiettivo è quello di ottenere uploadform.is_valid() per valutare True, così posso testare il codice che segue la validazione dei form. Quando eseguo il test sopra, uploadform.is_valid() restituisce False. C'è qualcosa che mi manca? Il codice nel mio test aggiunge il file a request.FILES, o sta facendo qualcos'altro?
Se non sei sicuro di ciò che è in 'request.FILES', la cosa più rapida da fare è aggiungere aggiungi una dichiarazione di stampa nella tua vista per vedere cosa sta succedendo. – Alasdair
hmm L'ho provato ma l'argomento FILES non è stato incluso nella stampa. C'è un'impostazione per abilitarlo? – vasek1