Fix PUT api/project/:code/members/:id (#297)

* Fix PUT api/project/:code/members/:id

Before that commit, every PUT *must* change the name of the members, so that was :
- no idempotence,
- no ability to change only weight

fix #295

* Remove redundant comment
This commit is contained in:
JocelynDelalande 2017-12-27 15:58:40 +01:00 committed by Alexis Metaireau
parent 0189313c1f
commit 4d359ce11b
3 changed files with 17 additions and 3 deletions

View file

@ -37,6 +37,11 @@ Added
- Dockerfile
- Documentation explaining the upgrade process
Fixed
=====
- Fix `PUT api/project/:code/members/:id` API endpoint (#295)
Removed
=======

View file

@ -79,7 +79,7 @@ class MemberHandler(object):
return 400, form.errors
def update(self, project, member_id):
form = MemberForm(project, meta={'csrf': False})
form = MemberForm(project, meta={'csrf': False}, edit=True)
if form.validate():
member = Person.query.get(member_id, project)
form.save(project, member)

View file

@ -1155,7 +1155,8 @@ class APITestCase(IhatemoneyTestCase):
# edit this member
req = self.client.put("/api/projects/raclette/members/1", data={
"name": "Fred"
"name": "Fred",
"weight": 2,
}, headers=self.get_auth("raclette"))
self.assertStatus(200, req)
@ -1166,6 +1167,15 @@ class APITestCase(IhatemoneyTestCase):
self.assertStatus(200, req)
self.assertEqual("Fred", json.loads(req.data.decode('utf-8'))["name"])
self.assertEqual(2, json.loads(req.data.decode('utf-8'))["weight"])
# edit this member with same information
# (test PUT idemopotence)
req = self.client.put("/api/projects/raclette/members/1", data={
"name": "Fred"
}, headers=self.get_auth("raclette"))
self.assertStatus(200, req)
# delete a member
@ -1175,7 +1185,6 @@ class APITestCase(IhatemoneyTestCase):
self.assertStatus(200, req)
# the list of members should be empty
# get the list of members (should be empty)
req = self.client.get("/api/projects/raclette/members",
headers=self.get_auth("raclette"))