Не знаете, как разместить данные формы в модульном тесте - PullRequest
0 голосов
/ 19 мая 2019

У меня есть шаблон HTML, который отправляет форму, содержащую результаты выбора пользователя.Эта форма публикуется в функции python в "rout.py", которая добавляет в базу данных, основываясь на значении этого выбора.Я пытаюсь запустить модульный тест для этой функции, но не знаю, как разместить форму в файле модульных тестов.

Вот соответствующая часть формы в шаблоне 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>

Вот соответствующая часть моей функции в "rout.py", на которой я запускаю модульное тестирование:

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

Вот вспомогательная функция, которую я использовал в своем модулетест для запуска функции "select" (INCORRECT):

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

Я ожидаю, что эта вспомогательная функция будет моделировать POST, выполняемый методом HTML-формы, такой что "request.form.get ('car_select') "равно параметру" car "вспомогательной функции.

1 Ответ

0 голосов
/ 19 мая 2019

Вы можете использовать flask встроенный test_client:

app.test_client().post("/select", data=dict(car_select=car))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...