2012-12-04 16 views
5

Czy ktoś wie, jak mogę przetestować przesyłanie obrazów przy użyciu WebTestu. Mój obecny kod jest:Testowanie przesyłania obrazów za pomocą Django i testu internetowego

form['avatar'] =('avatar', os.path.join(settings.PROJECT_PATH, 'static', 'img', 'avatar.png')) 
res = form.submit() 

W odpowiedzi pojawia się następujący błąd „Prześlij poprawny obraz Przesłany plik nie był albo obraz lub uszkodzony obraz..”.

Każda pomoc zostanie doceniona.

+0

Chyba należy przekazać obiekt pliku. – power

+0

Nie, jeśli obiekt pliku zostanie przekazany, test internetowy zwróci "Błąd wartości: Treść pliku musi być nie " –

+2

Co stanie się, jeśli przełączysz plik image_file.read()? – power

Odpowiedz

6

Moc miała rację. Niestety (lub nie) znalazłem jego odpowiedź po spędzeniu pół godziny na debugowaniu testu internetowego. Oto trochę więcej informacji.

stara się przekazać tylko ścieżkę do plików przynosi następujące wyjątki:

webtest/app.py", line 1028, in _get_file_info

ValueError: upload_files need to be a list of tuples of (fieldname, filename, filecontent) or (fieldname, filename); you gave: ...

Problemem jest to, że nie mówiłem, że automatycznie doda nazwę pola do wysyłania krotki i podejmowania 3 itemy na 4 itemy. Ostateczne rozwiązania było:

avatar = ('avatar', 
      file(os.path.join(settings.PROJECT_PATH, '....', 'avatar.png')).read()) 

Szkoda, że ​​nie jest godna przykład ale mam nadzieję, że to pomoże ktoś inny też)

1

Obecnie wybrana odpowiedź nie może mi pomóc.

Ale znalazłem sposób, aby zapewnić oczekiwane pliki w metodzie .submit() args

form.submit(upload_files=[('avatar', '/../file_path.png')) 
Powiązane problemy