]> asedeno.scripts.mit.edu Git - bluechips.git/blob - bluechips/tests/lib/test_helpers.py
Right align total debit/credit on status pages
[bluechips.git] / bluechips / tests / lib / test_helpers.py
1 from unittest import TestCase
2 from pylons import request
3 from datetime import date
4 from bluechips.lib import helpers as h
5
6 class TestHelpers(TestCase):
7     def test_grab_real_object(self):
8         class Foo(object):
9             pass
10         foo = Foo()
11         foo.bar = 'some string'
12         assert h.grab(foo, 'bar') == 'some string'
13         try:
14             h.grab(foo, 'baz')
15         except AttributeError:
16             pass
17         else:
18             raise AssertionError
19
20     def test_grab_any_fake(self):
21         assert h.grab(None, 'nonexistent') == ''
22         assert h.grab('', 'nonexistent') == ''
23
24     def test_grab_date(self):
25         assert h.grab(None, 'date') == date.today()
26
27     def test_grab_user(self):
28         class FakeRequest(object):
29             pass
30         class FakeUser(object):
31             pass
32         class SomeObject(object):
33             pass
34         req = FakeRequest()
35         req.environ = {}
36         req.environ['user'] = FakeUser()
37         test_obj = SomeObject()
38         req.environ['user'].id = test_obj
39         request._push_object(req)
40         assert h.grab(None, 'spender_id') == test_obj
41         assert h.grab(None, 'creditor_id') == test_obj
42         assert h.grab(None, 'debtor_id') == test_obj
43         request._pop_object()
44
45     def test_grab_amount(self):
46         assert h.grab(None, 'amount') == 0