Przez ostatnie dwa dni szukałem w Internecie, próbując zrozumieć problem, który mam z WebTestem. Jednak nie miałem żadnej radości i zastanawiałem się, czy ktoś tu może pomóc.Problem z badaniami w nosie i przesyłaniem plików
Używam nosa do testowania aplikacji internetowej, którą właśnie rozwijam, ale wydaje mi się, że mam problem z formularzem, który zawiera pole do przesyłania plików. Formularz i sprawdzanie poprawności działa na serwerze, gdy działa normalnie, a jeśli uruchomię kod testowy z powłoki, działa on również. Jednak zawsze, gdy uruchamiam kod testowy z nosa, nie akceptuję przesłanych informacji.
Oto przykład w postaci:
<form method="POST" enctype="multipart/form-data" action="....">
<input type="text" name="first_name" id="first_name">
<input type="text" name="last_name" id="last_name">
<input type="file" name="thumbnail" id="thumbnail">
<input type="submit" value="Create" name="submit" id="submit">
</form>
Moja WebTest kod wygląda następująco:
response = self.app.get(url(controller=self.controller, action='create'))
form = response.form
log.debug(form.submit_fields())
form.set('first_name', 'test1-1')
form.set('last_name', 'test1-1')
form.set('thumbnail', '')
log.debug(form.submit_fields())
response = form.submit()
Odpowiedź dostaję gdy uruchamiam to, że miniatur brakuje przedstawionych wartościach , nawet myśl, że pole nie jest wymagane przez walidator formularza. Kiedy porównano wyjście kodu od nosa, a po uruchomieniu go przez powłoki Zauważyłem, że wyjście z submit_fields różnił
Shell wyjściowa:
[('first_name', ''),('last_name', '')] #First log call
[('first_name', 'test1-1'),('last_name', 'test1-1'), ('thumbnail', '')] #Second log call
Nos wyjściowa:
[(u'first_name', ''), (u'last_name', ''), (u'thumbnail', <File name="thumbnail" id="thumbnail">)] #First log call
[(u'first_name', 'test1-1'), (u'last_name', 'test1-1'),(u'thumbnail', <File name="thumbnail" id="thumbnail">)] #Second log call
jak ty widać różnicę w powłoce nie ma miniaturki krotki, ale ustawia ją na pusty ciąg, który przechodzi bez problemu. Jednak w Nosie jest tam już krotka i nie resetuje ona wartości. Czy ktoś może mi w tym pomóc? Czy istnieje problem z wypróbowaniem wieloczęściowych formularzy w WebTestu podczas korzystania z metody form.submit?
Z góry dziękuję za pomoc.
Biblioteka Informacja: Pylony-1.0.1 WebTest-1.4.0 WebOb-1.2.3 nos-1.2.1
Czy próbowałeś użyć formularza.set ('thumbnail', '', index = 0)? –
Dzięki @pi dla twojego komentarza, jednak z mojego zrozumienia wartość indeksu jest potrzebna tylko wtedy, gdy są to pola o tej samej nazwie w formularzu. Próbowałem go po prostu na bezpieczną stronę, ale nie robił nic innego. Jest oczywiście coś, czego mi tutaj brakuje. –
Czy próbowałeś już formularza.set ("thumbnail", Brak)? – alecxe