From 20ab40690d74befcd8fc75f24f301759840bf43a Mon Sep 17 00:00:00 2001 From: Alexis Metaireau Date: Wed, 14 Sep 2011 22:03:18 +0200 Subject: Provide a way to edit a project. Fix #17 --- budget/tests.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'budget/tests.py') diff --git a/budget/tests.py b/budget/tests.py index 96ed042..7296803 100644 --- a/budget/tests.py +++ b/budget/tests.py @@ -30,9 +30,8 @@ class TestCase(unittest.TestCase): def login(self, project, password=None, test_client=None): password = password or project - test_client = test_client or self.app - return test_client.post('/authenticate', data=dict( + return self.app.post('/authenticate', data=dict( id=project, password=password), follow_redirects=True) def post_project(self, name): @@ -307,6 +306,31 @@ class BudgetTestCase(TestCase): balance = models.Project.query.get("raclette").get_balance() self.assertEqual(set(balance.values()), set([19.0, -19.0])) + def test_edit_project(self): + # A project should be editable + + self.post_project("raclette") + new_data = { + 'name': 'Super raclette party!', + 'contact_email': 'alexis@notmyidea.org', + 'password': 'didoudida' + } + + resp = self.app.post("/raclette/edit", data=new_data, + follow_redirects=True) + self.assertEqual(resp.status_code, 200) + project = models.Project.query.get("raclette") + + for key, value in new_data.items(): + self.assertEqual(getattr(project, key), value, key) + + # Editing a project with a wrong email address should fail + new_data['contact_email'] = 'wrong_email' + + resp = self.app.post("/raclette/edit", data=new_data, + follow_redirects=True) + self.assertIn("Invalid email address", resp.data) + if __name__ == "__main__": unittest.main() -- cgit v1.1