aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA.Avenel <avenel.alexandre@gmail.com>2013-05-09 23:46:50 +0200
committerA.Avenel <avenel.alexandre@gmail.com>2013-05-09 23:46:50 +0200
commitcae50a7da24d3aeac86081d0f8d9f6ea7c0cd3c3 (patch)
tree4c7e03c81868237192992d8d2ff587f68fab0a4d
parentff9ead22031563b31f14e87ae3b3c537a06b8c41 (diff)
parentaa7d79d2ad119e575d8cd14f19369e74b22f804b (diff)
downloadihatemoney-mirror-cae50a7da24d3aeac86081d0f8d9f6ea7c0cd3c3.zip
ihatemoney-mirror-cae50a7da24d3aeac86081d0f8d9f6ea7c0cd3c3.tar.gz
ihatemoney-mirror-cae50a7da24d3aeac86081d0f8d9f6ea7c0cd3c3.tar.bz2
Merge branch 'master' of git://github.com/spiral-project/ihatemoney
-rw-r--r--budget/models.py5
-rw-r--r--budget/tests.py7
-rw-r--r--budget/web.py10
3 files changed, 16 insertions, 6 deletions
diff --git a/budget/models.py b/budget/models.py
index 2d44145..900b1d0 100644
--- a/budget/models.py
+++ b/budget/models.py
@@ -117,7 +117,10 @@ class Project(db.Model):
This method returns the status DELETED or DEACTIVATED regarding the
changes made.
"""
- person = Person.query.get(member_id, self)
+ try:
+ person = Person.query.get(member_id, self)
+ except orm.exc.NoResultFound:
+ return None
if not person.has_bills():
db.session.delete(person)
db.session.commit()
diff --git a/budget/tests.py b/budget/tests.py
index 901924b..9eea518 100644
--- a/budget/tests.py
+++ b/budget/tests.py
@@ -275,6 +275,13 @@ class BudgetTestCase(TestCase):
response = self.app.get("/raclette/members/1/delete")
self.assertEqual(response.status_code, 405)
+ #delete user using POST method
+ self.app.post("/raclette/members/1/delete")
+ self.assertEqual(
+ len(models.Project.query.get("raclette").active_members), 0)
+ #try to delete an user already deleted
+ self.app.post("/raclette/members/1/delete")
+
def test_demo(self):
# test that a demo project is created if none is defined
self.assertEqual([], models.Project.query.all())
diff --git a/budget/web.py b/budget/web.py
index 3125f9b..0b302cd 100644
--- a/budget/web.py
+++ b/budget/web.py
@@ -307,11 +307,11 @@ def reactivate(member_id):
@main.route("/<project_id>/members/<member_id>/delete", methods=["POST"])
def remove_member(member_id):
member = g.project.remove_member(member_id)
- if member.activated == False:
- flash(_("User '%(name)s' has been deactivated", name=member.name))
- else:
- flash(_("User '%(name)s' has been removed", name=member.name))
-
+ if member:
+ if member.activated == False:
+ flash(_("User '%(name)s' has been deactivated", name=member.name))
+ else:
+ flash(_("User '%(name)s' has been removed", name=member.name))
return redirect(url_for(".list_bills"))