From 632dff8c6019f5ccd268bb0d2579951b3ab68885 Mon Sep 17 00:00:00 2001 From: Glandos Date: Fri, 12 Nov 2021 23:33:31 +0100 Subject: [PATCH] Support WTForms 3 --- ihatemoney/api/common.py | 2 +- ihatemoney/forms.py | 19 ++++++++++++++++--- ihatemoney/tests/api_test.py | 4 ++-- setup.cfg | 2 +- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/ihatemoney/api/common.py b/ihatemoney/api/common.py index fa097dec..ef26650b 100644 --- a/ihatemoney/api/common.py +++ b/ihatemoney/api/common.py @@ -3,7 +3,7 @@ from functools import wraps from flask import current_app, request from flask_restful import Resource, abort from werkzeug.security import check_password_hash -from wtforms.fields.core import BooleanField +from wtforms.fields import BooleanField from ihatemoney.forms import EditProjectForm, MemberForm, ProjectForm, get_billform_for from ihatemoney.models import Bill, Person, Project, db diff --git a/ihatemoney/forms.py b/ihatemoney/forms.py index a55166e8..e303287a 100644 --- a/ihatemoney/forms.py +++ b/ihatemoney/forms.py @@ -9,9 +9,22 @@ from flask_wtf.file import FileAllowed, FileField, FileRequired from flask_wtf.form import FlaskForm from markupsafe import Markup from werkzeug.security import check_password_hash, generate_password_hash -from wtforms.fields.core import Label, SelectField, SelectMultipleField -from wtforms.fields.html5 import DateField, DecimalField, URLField -from wtforms.fields.simple import BooleanField, PasswordField, StringField, SubmitField +from wtforms.fields import ( + BooleanField, + DateField, + DecimalField, + Label, + PasswordField, + SelectField, + SelectMultipleField, + StringField, + SubmitField, +) +try: + # Compat for WTForms <= 2.3.3 + from wtforms.fields.html5 import URLField +except ModuleNotFoundError: + from wtforms.fields import URLField from wtforms.validators import ( URL, DataRequired, diff --git a/ihatemoney/tests/api_test.py b/ihatemoney/tests/api_test.py index 1365fa02..9a2d2149 100644 --- a/ihatemoney/tests/api_test.py +++ b/ihatemoney/tests/api_test.py @@ -539,7 +539,7 @@ class APITestCase(IhatemoneyTestCase): "amount": expected_amount, "date": "2011-08-10", "id": id, - "external_link": "", + "external_link": None, "original_currency": "XXX", "converted_amount": expected_amount, } @@ -834,7 +834,7 @@ class APITestCase(IhatemoneyTestCase): "amount": 25.0, "date": "2011-08-10", "id": 1, - "external_link": "", + "external_link": None, "converted_amount": 25.0, "original_currency": "XXX", } diff --git a/setup.cfg b/setup.cfg index 2920691e..3f6f74a6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,7 +35,7 @@ install_requires = Flask-SQLAlchemy>=2.4,<3 Flask-Talisman>=0.8,<1 Flask-WTF>=0.14.3,<2 - WTForms>=2.3.1,<2.4 + WTForms>=2.3.1,<3.1 Flask>=2,<3 itsdangerous>=2,<3 Jinja2>=3,<4