1 from datetime import date
2 from decimal import Decimal
3 from bluechips.tests import *
5 from bluechips import model
6 from bluechips.model import meta
8 class TestTransferController(TestController):
11 response = self.app.get(url_for(controller='transfer'))
13 response.mustcontain('Add a New Transfer')
16 user_rich = meta.Session.query(model.User).\
17 filter_by(name=u'Rich Scheme').one()
18 user_ben = meta.Session.query(model.User).\
19 filter_by(name=u'Ben Bitdiddle').one()
21 form['debtor_id'] = user_rich.id
22 form['creditor_id'] = user_ben.id
23 form['amount'] = '123.45'
24 # Make sure date is today.
26 assert form['date'].value == today.strftime('%m/%d/%Y')
27 form['description'] = 'A test transfer from Rich to Ben'
29 response = form.submit()
30 response = response.follow()
31 response.mustcontain('Transfer', 'created.')
33 t = meta.Session.query(model.Transfer).\
34 order_by(model.Transfer.id.desc()).first()
35 assert t.debtor.name == u'Rich Scheme'
36 assert t.creditor.name == u'Ben Bitdiddle'
37 assert t.amount == 12345
38 assert t.date == today
39 assert t.description == u'A test transfer from Rich to Ben'
42 user_rich = meta.Session.query(model.User).\
43 filter_by(name=u'Rich Scheme').one()
44 user_ben = meta.Session.query(model.User).\
45 filter_by(name=u'Ben Bitdiddle').one()
46 t = model.Transfer(user_rich, user_ben, 12345)
47 t.description = u'Test transfer'
51 response = self.app.get(url_for(controller='transfer',
54 response.mustcontain('Edit a Transfer')
57 assert int(form['debtor_id'].value) == t.debtor_id
58 assert int(form['creditor_id'].value) == t.creditor_id
59 assert Decimal(form['amount'].value) * 100 == t.amount
60 assert form['date'].value == t.date.strftime('%m/%d/%Y')
61 assert form['description'].value == t.description
63 form['description'] = u'A new description'
65 response = form.submit()
66 response = response.follow()
67 response.mustcontain('Transfer', 'updated.')
69 t = meta.Session.query(model.Transfer).\
70 order_by(model.Transfer.id.desc()).first()
71 assert t.description == u'A new description'
74 transfers = meta.Session.query(model.Transfer).all()
76 meta.Session.delete(t)