1 from datetime import date
2 from bluechips.tests import *
4 from bluechips import model
5 from bluechips.model import meta
7 class TestSpendController(TestController):
10 response = self.app.get(url_for(controller='spend'))
12 response.mustcontain('Add a New Expenditure')
15 user = meta.Session.query(model.User).\
16 filter_by(name=u'Charlie Root').one()
18 form['spender_id'] = user.id
19 form['amount'] = '66.78'
20 # Make sure date is today.
22 assert form['date'].value == today.strftime('%m/%d/%Y')
23 form['description'] = 'A test expenditure'
24 form['shares-0.amount'] = '1'
25 form['shares-1.amount'] = '2'
26 form['shares-2.amount'] = '3'
27 form['shares-3.amount'] = '4'
29 response = form.submit()
30 response = response.follow()
31 response.mustcontain('Expenditure', 'created.')
33 e = meta.Session.query(model.Expenditure).\
34 order_by(model.Expenditure.id.desc()).first()
35 assert e.spender.name == u'Charlie Root'
36 assert e.amount == 6678
37 assert e.date == today
38 assert e.description == u'A test expenditure'
44 user = meta.Session.query(model.User).\
45 filter_by(name=u'Charlie Root').one()
46 e = model.Expenditure(user, 53812, u'Lemon bundt cake', None)
51 response = self.app.get(url_for(controller='spend',
54 response.mustcontain('Edit an Expenditure')
57 assert int(form['spender_id'].value) == user.id
58 assert form['amount'].value == '538.12'
59 assert form['date'].value == date.today().strftime('%m/%d/%Y')
60 assert form['description'].value == u'Lemon bundt cake'
62 form['description'] = u'Updated bundt cake'
64 # Update the split too.
66 response = form.submit()
67 response = response.follow()
68 response.mustcontain('Expenditure', 'updated.')
70 e = meta.Session.query(model.Expenditure).\
71 order_by(model.Expenditure.id.desc()).first()
72 assert e.description == u'Updated bundt cake'
75 expenditures = meta.Session.query(model.Expenditure).all()
76 for e in expenditures:
77 meta.Session.delete(e)