aboutsummaryrefslogtreecommitdiff
path: root/ihatemoney
diff options
context:
space:
mode:
Diffstat (limited to 'ihatemoney')
-rw-r--r--ihatemoney/forms.py9
-rw-r--r--ihatemoney/tests/tests.py11
2 files changed, 18 insertions, 2 deletions
diff --git a/ihatemoney/forms.py b/ihatemoney/forms.py
index d00b5fe..cce36e3 100644
--- a/ihatemoney/forms.py
+++ b/ihatemoney/forms.py
@@ -17,6 +17,13 @@ from ihatemoney.models import Project, Person
from ihatemoney.utils import slugify, eval_arithmetic_expression
+def strip_filter(string):
+ try:
+ return string.strip()
+ except Exception:
+ return string
+
+
def get_billform_for(project, set_default=True, **kwargs):
"""Return an instance of BillForm configured for a particular project.
@@ -170,7 +177,7 @@ class BillForm(FlaskForm):
class MemberForm(FlaskForm):
- name = StringField(_("Name"), validators=[DataRequired()])
+ name = StringField(_("Name"), validators=[DataRequired()], filters=[strip_filter, ])
weight_validators = [NumberRange(min=0.1, message=_("Weights should be positive"))]
weight = CommaDecimalField(_("Weight"), default=1,
diff --git a/ihatemoney/tests/tests.py b/ihatemoney/tests/tests.py
index 9d611d7..a7d70ce 100644
--- a/ihatemoney/tests/tests.py
+++ b/ihatemoney/tests/tests.py
@@ -632,6 +632,16 @@ class BudgetTestCase(IhatemoneyTestCase):
balance = models.Project.query.get("raclette").balance
self.assertEqual(set(balance.values()), set([6, -6]))
+ def test_trimmed_members(self):
+ self.post_project("raclette")
+
+ # Add two times the same person (with a space at the end).
+ self.client.post("/raclette/members/add", data={'name': 'alexis'})
+ self.client.post("/raclette/members/add", data={'name': 'alexis '})
+ members = models.Project.query.get("raclette").members
+
+ self.assertEqual(len(members), 1)
+
def test_weighted_members_list(self):
self.post_project("raclette")
@@ -1225,7 +1235,6 @@ class APITestCase(IhatemoneyTestCase):
self.assertEqual(False, json.loads(req.data.decode('utf-8'))["activated"])
# re-activate the user
-
req = self.client.put("/api/projects/raclette/members/1", data={
"name": "Fred",
"activated": True,