]> asedeno.scripts.mit.edu Git - bluechips.git/blob - bluechips/tests/splits/test_random.py
2f95738f6654f02d217d5aa848a703dc2b66bc65
[bluechips.git] / bluechips / tests / splits / test_random.py
1 from bluechips.tests import *
2 from bluechips import model
3 from bluechips.model import meta
4 from bluechips.model.types import Currency
5 import random
6
7 class TestSplitRandom(TestController):
8     @classmethod
9     def setUpClass(cls):
10         for i in xrange(random.randint(2, 5)):
11             u = model.User()
12             u.username = sample_users[i].lower()
13             u.name = sample_users[i]
14             u.resident = 1
15             meta.Session.save(u)
16         meta.Session.commit()
17         
18     def setUp(self):
19         users = meta.Session.query(model.User).all()
20         for i in xrange(random.randint(5, 20)):
21             e = model.Expenditure()
22             e.spender = random.choice(users)
23             e.amount = Currency(random.randint(1000, 100000))
24             meta.Session.save(e)
25             e.even_split()
26         meta.Session.commit()
27     
28     def test_splitTotal(self):
29         for e in meta.Session.query(model.Expenditure):
30             assert sum(s.share for s in e.splits) == e.amount,\
31                 "Total of splits is not the same as the expenditure total"