Недавно я создал тесты для своего приложения Flask.
Я использую Flask -WTF для своих форм. На одном из маршрутов у меня есть следующая форма:
from flask_wtf import FlaskForm
class URLForm(FlaskForm):
url = StringField('url', validators=[InputRequired(), URL(require_tld=True)],
render_kw={"placeholder": "Paste URL here"})
У меня есть следующий тест:
def test_valid_link(self, app):
"""Valid link"""
form = URLForm(url='https://example.com')
assert form.validate()
Этот тест не проходит, хотя при запуске моего приложения форма принимает тот же URL.
В моем тестовом приложении CSRF отключен, так что это не должно быть проблемой (я также пробовал отключить CSRF при инициализации формы в тестах)
Кроме того, следующие результаты могут помочь :
>>> form.url
<input id="url" name="url" placeholder="Paste URL here" required type="text" value="https://example.com">
>>> form.data
{'url': 'https://example.com'}
>>> form.validate()
False
>>> form.errors
{'url': ['This field is required.']}