]> asedeno.scripts.mit.edu Git - bluechips.git/commitdiff
fleshed out functional tests more
authorScott Torborg <scott@crookedmedia.com>
Wed, 4 Nov 2009 06:33:05 +0000 (20:33 -1000)
committerScott Torborg <scott@crookedmedia.com>
Wed, 4 Nov 2009 06:33:05 +0000 (20:33 -1000)
bluechips/tests/functional/test_spend.py
bluechips/tests/functional/test_transfer.py

index 2b6603a8a778e0c69ff066f80f6c756843b84741..940a015d0300c9d348704cfcf77525c993638411 100644 (file)
@@ -1,7 +1,76 @@
+from datetime import date
 from bluechips.tests import *
 
+from bluechips import model
+from bluechips.model import meta
+
 class TestSpendController(TestController):
 
     def test_index(self):
         response = self.app.get(url_for(controller='spend'))
         # Test response...
+        response.mustcontain('Add a New Expenditure')
+        form = response.form
+
+        user = meta.Session.query(model.User).\
+                filter_by(name=u'Charlie Root').one()
+        
+        form['spender_id'] = user.id
+        form['amount'] = '66.78'
+        # Make sure date is today.
+        today = date.today()
+        assert form['date'].value == today.strftime('%m/%d/%Y')
+        form['description'] = 'A test expenditure'
+        form['shares-0.amount'] = '1'
+        form['shares-1.amount'] = '2'
+        form['shares-2.amount'] = '3'
+        form['shares-3.amount'] = '4'
+
+        response = form.submit()
+        response = response.follow()
+        response.mustcontain('Expenditure updated.')
+
+        e = meta.Session.query(model.Expenditure).\
+                order_by(model.Expenditure.id.desc()).first()
+        assert e.spender.name == u'Charlie Root'
+        assert e.amount == 6678
+        assert e.date == today
+        assert e.description == u'A test expenditure'
+        meta.Session.delete(e)
+        meta.Session.commit()
+
+        # Test the split.
+
+
+    def test_edit(self):
+        user = meta.Session.query(model.User).\
+                filter_by(name=u'Charlie Root').one()
+        e = model.Expenditure(user, 53812, u'Lemon bundt cake', None)
+        e.even_split()
+        meta.Session.add(e)
+        meta.Session.commit()
+
+        response = self.app.get(url_for(controller='spend',
+                                        action='edit',
+                                        id=e.id))
+        response.mustcontain('Edit an Expenditure')
+        form = response.form
+
+        assert int(form['spender_id'].value) == user.id
+        assert form['amount'].value == '538.12'
+        assert form['date'].value == date.today().strftime('%m/%d/%Y')
+        assert form['description'].value == u'Lemon bundt cake'
+
+        form['description'] = u'Updated bundt cake'
+
+        # Update the split too.
+
+        response = form.submit()
+        response = response.follow()
+        response.mustcontain('Expenditure updated.')
+
+        e = meta.Session.query(model.Expenditure).\
+                order_by(model.Expenditure.id.desc()).first()
+        assert e.description == u'Updated bundt cake'
+        meta.Session.delete(e)
+        meta.Session.commit()
index f6ed5a81f43c28aa1e5cbc1b40b7387cde0e270b..36a6bb8a3d170b05fe7f7aed334f0003e28320fc 100644 (file)
@@ -30,35 +30,37 @@ class TestTransferController(TestController):
         response = response.follow()
         response.mustcontain('Transfer updated.')
 
-        transfer = meta.Session.query(model.Transfer).\
+        t = meta.Session.query(model.Transfer).\
                 order_by(model.Transfer.id.desc()).first()
-        assert transfer.debtor.name == u'Rich Scheme'
-        assert transfer.creditor.name == u'Ben Bitdiddle'
-        assert transfer.amount == 12345
-        assert transfer.date == today
-        assert transfer.description == u'A test transfer from Rich to Ben'
+        assert t.debtor.name == u'Rich Scheme'
+        assert t.creditor.name == u'Ben Bitdiddle'
+        assert t.amount == 12345
+        assert t.date == today
+        assert t.description == u'A test transfer from Rich to Ben'
+        meta.Session.delete(t)
+        meta.Session.commit()
 
     def test_edit(self):
         user_rich = meta.Session.query(model.User).\
                 filter_by(name=u'Rich Scheme').one()
         user_ben = meta.Session.query(model.User).\
                 filter_by(name=u'Ben Bitdiddle').one()
-        transfer = model.Transfer(user_rich, user_ben, 12345)
-        transfer.description = u'Test transfer'
-        meta.Session.add(transfer)
+        t = model.Transfer(user_rich, user_ben, 12345)
+        t.description = u'Test transfer'
+        meta.Session.add(t)
         meta.Session.commit()
 
         response = self.app.get(url_for(controller='transfer',
                                         action='edit',
-                                        id=transfer.id))
+                                        id=t.id))
         response.mustcontain('Edit a Transfer')
         form = response.form
 
-        assert int(form['debtor_id'].value) == transfer.debtor_id
-        assert int(form['creditor_id'].value) == transfer.creditor_id
-        assert Decimal(form['amount'].value) * 100 == transfer.amount
-        assert form['date'].value == transfer.date.strftime('%m/%d/%Y')
-        assert form['description'].value == transfer.description
+        assert int(form['debtor_id'].value) == t.debtor_id
+        assert int(form['creditor_id'].value) == t.creditor_id
+        assert Decimal(form['amount'].value) * 100 == t.amount
+        assert form['date'].value == t.date.strftime('%m/%d/%Y')
+        assert form['description'].value == t.description
 
         form['description'] = u'A new description'
 
@@ -66,6 +68,8 @@ class TestTransferController(TestController):
         response = response.follow()
         response.mustcontain('Transfer updated.')
 
-        transfer = meta.Session.query(model.Transfer).\
+        t = meta.Session.query(model.Transfer).\
                 order_by(model.Transfer.id.desc()).first()
-        assert transfer.description == u'A new description'
+        assert t.description == u'A new description'
+        meta.Session.delete(t)
+        meta.Session.commit()