X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=bluechips%2Ftests%2F__init__.py;h=4eadf12630c18d453b1b32a2eb7e0a06cf0ad726;hb=2ce02b660a53feb4cc32912bb6e91840e9aae95b;hp=363fa4ab4c3cf6c84d03ee9fcc7e33e96e421fa9;hpb=f8814994349f84b9636c22e75c75e02511a8eb36;p=bluechips.git diff --git a/bluechips/tests/__init__.py b/bluechips/tests/__init__.py index 363fa4a..4eadf12 100644 --- a/bluechips/tests/__init__.py +++ b/bluechips/tests/__init__.py @@ -15,10 +15,35 @@ 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__']]) + + u1 = bluechips.model.User(u'root', u'Charlie Root', True) + u1.email = u'charlie@example.com' + u1.password = u'charliepass' + u2 = bluechips.model.User(u'ben', u'Ben Bitdiddle', True) + u3 = bluechips.model.User(u'gotta', u'Gotta Lisp', True) + u4 = bluechips.model.User(u'rich', u'Rich Scheme', True) + + for u in (u1, u2, u3, u4): + meta.Session.add(u) + meta.Session.commit() + +def tearDownPackage(): + meta.metadata.drop_all() class TestController(TestCase): @@ -26,3 +51,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))