Как я могу использовать pylons (paste) webtest с несколькими флажками с одинаковым именем? - PullRequest
5 голосов
/ 26 июля 2010

Предположим, у меня есть такая форма:

<form id='myform'>
    Favorite colors?
    <input type='checkbox' name='color' value='Green'>Green
    <input type='checkbox' name='color' value='Blue'>Blue
    <input type='checkbox' name='color' value='Red'>Red
    <input type='submit' value='Submit'>
</form>

Как использовать библиотеку форм веб-теста для проверки отправки нескольких значений?

1 Ответ

4 голосов
/ 27 июля 2010

Не уверен насчет библиотеки форм, но вы можете использовать MultiDict (в некоторых случаях вам, возможно, придется использовать UnicodeMultiDict).

from webob.multidict import MultiDict

class TestSomeController(TestController):

    def test_something(self):
        params = MultiDict()
        params.add('some_param', '1')
        params.add('color', 'Green')
        params.add('color', 'Blue')
        response = self.app.post(url('something'), params=params)
        assert 'something' in response

Я никогда не использовал WebTest для отправки реальных форм, но, глядя на источник класса Form, вы можете установить индекс поля, которое вы хотите установить для устранения неоднозначности. Я не проверял это, но что-то подобное могло бы сработать:

form = response.form
form.set('color', True, 0)
form.set('color', True, 2)
...