Trim member usernames. Fixes #353

(cherry picked from commit 82d94a7490)
This commit is contained in:
Alexis Métaireau 2018-08-05 16:31:20 +02:00 committed by Baptiste Jonglez
parent fe08133064
commit be8b01a493
2 changed files with 18 additions and 2 deletions

View file

@ -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,

View file

@ -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")
@ -1220,7 +1230,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,