]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/tests/__init__.py
brought up to date with latest sqlalchemy conventions
[bluechips.git] / bluechips / tests / __init__.py
index 363fa4ab4c3cf6c84d03ee9fcc7e33e96e421fa9..79de0195e99cd1c0acd7427958b35de768fef66c 100644 (file)
@@ -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))