aboutsummaryrefslogtreecommitdiff
path: root/budget/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'budget/tests.py')
-rw-r--r--budget/tests.py47
1 files changed, 46 insertions, 1 deletions
diff --git a/budget/tests.py b/budget/tests.py
index 2277301..595d1a1 100644
--- a/budget/tests.py
+++ b/budget/tests.py
@@ -1,3 +1,4 @@
+ # -*- coding: utf-8 -*-
import os
import tempfile
import unittest
@@ -119,7 +120,7 @@ class BudgetTestCase(TestCase):
# no new project added
self.assertEqual(len(models.Project.query.all()), 1)
- def test_add_member(self):
+ def test_membership(self):
self.create_project("raclette")
self.login("raclette")
@@ -132,6 +133,50 @@ class BudgetTestCase(TestCase):
# should not accept him
self.assertEqual(len(models.Project.query.get("raclette").members), 1)
+ # add fred
+ self.app.post("/raclette/members/add", data={'name': 'fred' })
+ self.assertEqual(len(models.Project.query.get("raclette").members), 2)
+
+ # check fred is present in the bills page
+ result = self.app.get("/raclette/")
+ self.assertIn("fred", result.data)
+
+ # remove fred
+ self.app.post("/raclette/members/%s/delete" %
+ models.Project.query.get("raclette").members[-1].id)
+
+ # as fred is not bound to any bill, he is removed
+ self.assertEqual(len(models.Project.query.get("raclette").members), 1)
+
+ # add fred again
+ self.app.post("/raclette/members/add", data={'name': 'fred' })
+ fred_id = models.Project.query.get("raclette").members[-1].id
+
+ # bound him to a bill
+ result = self.app.post("/raclette/add", data={
+ 'date': '2011-08-10',
+ 'what': u'fromage à raclette',
+ 'payer': fred_id,
+ 'payed_for': [fred_id,],
+ 'amount': '25',
+ })
+
+ # remove fred
+ self.app.post("/raclette/members/%s/delete" % fred_id)
+
+ # he is still in the database, but is deactivated
+ self.assertEqual(len(models.Project.query.get("raclette").members), 2)
+ self.assertEqual(
+ len(models.Project.query.get("raclette").active_members), 1)
+
+ # as fred is now deactivated, check that he is not listed when adding
+ # a bill or displaying the balance
+ result = self.app.get("/raclette/")
+ self.assertNotIn("/raclette/members/%s/delete" % fred_id, result.data)
+
+ result = self.app.get("/raclette/add")
+ self.assertNotIn("fred", result.data)
+
if __name__ == "__main__":
unittest.main()