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 updated.')
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'
40 meta.Session.delete(t)
44 user_rich = meta.Session.query(model.User).\
45 filter_by(name=u'Rich Scheme').one()
46 user_ben = meta.Session.query(model.User).\
47 filter_by(name=u'Ben Bitdiddle').one()
48 t = model.Transfer(user_rich, user_ben, 12345)
49 t.description = u'Test transfer'
53 response = self.app.get(url_for(controller='transfer',
56 response.mustcontain('Edit a Transfer')
59 assert int(form['debtor_id'].value) == t.debtor_id
60 assert int(form['creditor_id'].value) == t.creditor_id
61 assert Decimal(form['amount'].value) * 100 == t.amount
62 assert form['date'].value == t.date.strftime('%m/%d/%Y')
63 assert form['description'].value == t.description
65 form['description'] = u'A new description'
67 response = form.submit()
68 response = response.follow()
69 response.mustcontain('Transfer updated.')
71 t = meta.Session.query(model.Transfer).\
72 order_by(model.Transfer.id.desc()).first()
73 assert t.description == u'A new description'
74 meta.Session.delete(t)