X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=bluechips%2Ftests%2F__init__.py;h=79de0195e99cd1c0acd7427958b35de768fef66c;hb=d24e23a6a01ed245e204c8c29fc10a5fbc6f8bc4;hp=363fa4ab4c3cf6c84d03ee9fcc7e33e96e421fa9;hpb=f8814994349f84b9636c22e75c75e02511a8eb36;p=bluechips.git diff --git a/bluechips/tests/__init__.py b/bluechips/tests/__init__.py index 363fa4a..79de019 100644 --- a/bluechips/tests/__init__.py +++ b/bluechips/tests/__init__.py @@ -15,10 +15,28 @@ from paste.script.appinstall import SetupCommand from pylons import config from routes import url_for -__all__ = ['url_for', 'TestController'] +import bluechips.model +from bluechips.model import meta +from bluechips.model.types import Currency -# Invoke websetup with the current config file -SetupCommand('setup-app').run([config['__file__']]) +import random + +__all__ = ['url_for', 'TestController', + 'createUsers', 'createExpenditures', + 'deleteUsers', 'deleteExpenditures'] + +sample_users = [u'Alice', u'Bob', u'Charlie', u'Dave', u'Eve'] + +def setUpPackage(): + # Invoke websetup with the current config file + SetupCommand('setup-app').run([config['__file__']]) + + test_user = bluechips.model.User(u'root', u'Charlie Root', False) + meta.Session.add(test_user) + meta.Session.commit() + +def tearDownPackage(): + meta.metadata.drop_all() class TestController(TestCase): @@ -26,3 +44,28 @@ class TestController(TestCase): wsgiapp = loadapp('config:%s' % config['__file__']) self.app = TestApp(wsgiapp) TestCase.__init__(self, *args, **kwargs) + +def createUsers(n=None): + if n is None: + n = random.randint(2, 5) + for i in xrange(n): + u = bluechips.model.User(sample_users[i].lower(), resident=True) + meta.Session.add(u) + meta.Session.commit() + +def createExpenditures(n=None): + if n is None: + n = random.randint(5, 20) + users = meta.Session.query(bluechips.model.User).all() + for i in xrange(n): + e = bluechips.model.Expenditure(random.choice(users), + Currency(random.randint(1000, 100000))) + meta.Session.add(e) + e.even_split() + meta.Session.commit() + +def deleteUsers(): + map(meta.Session.delete, meta.Session.query(bluechips.model.User)) + +def deleteExpenditures(): + map(meta.Session.delete, meta.Session.query(bluechips.model.Expenditure))