代码之家  ›  专栏  ›  技术社区  ›  GDorn

如何使用具有相同名称的多个复选框的pylons(粘贴)webtest?

  •  5
  • GDorn  · 技术社区  · 16 年前

    假设我有这样的表格:

    <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>
    

    如何使用WebTest的表单库测试提交多个值?

    1 回复  |  直到 16 年前
        1
  •  4
  •   Antoine Leclair    16 年前

    对表单库不确定,但可以使用多个副本(在某些情况下,可能必须使用unicodemultipct,我不确定)。

    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 = response.form
    form.set('color', True, 0)
    form.set('color', True, 2)
    
    推荐文章