不确定如何在单元测试中发布表单数据

时间:2019-05-18 23:44:23

标签: python html flask

我有一个HTML模板,该模板提交包含用户选择结果的表单。此表单将发布到“ routes.py”中的python函数中,该函数会基于此选择的值添加到数据库中。我正在尝试对此功能进行单元测试,但是不知道如何在单元测试文件中发布表格。

以下是HTML模板中表单的相关部分:

<form method="POST" action="{{ url_for('select') }}">
    <div class="info">

        <div >
            <div >
                <span>Select a car</span>
                <br/>
                <br>
                    <select name="car_select">
                        {% for i in cars %}
                            <option>{{i}}</option>
                        {% endfor %}    
                    </select>

            </div>
            <br><br>

            <button type="submit" onclick="time()">Vote</button>

        </div>
</form>

在“ routes.py”中,这是我功能的相关部分,我在以下位置运行单元测试:

@app.route("/select" , methods=['GET', 'POST'])
def select():
    select = request.form.get('car_select')

这是我在单元测试中用来启动“选择”功能(INCORRECT)的辅助功能:

def select(self, car):
        return self.app.post("/select", data=dict(car_select=car), follow_redirects = True)

我希望此Helper Function能够完成的工作是模拟HTML表单方法执行的POST,从而使“ request.form.get('car_select')”等于helper函数的“ car”参数。

1 个答案:

答案 0 :(得分:-1)

您可以使用flask的内置AudioData

app.test_client().post("/select", data=dict(car_select=car))