[Checkins] SVN: Products.SQLAlchemyDA/branches/zsql_commit_fix/Products/SQLAlchemyDA/tests/testSQLAlchemyDA.py Adding functional tests
Abdul Kader Maliyakkal
akm.mail at gmail.com
Sun May 2 05:49:08 EDT 2010
Log message for revision 111860:
Adding functional tests
Changed:
U Products.SQLAlchemyDA/branches/zsql_commit_fix/Products/SQLAlchemyDA/tests/testSQLAlchemyDA.py
-=-
Modified: Products.SQLAlchemyDA/branches/zsql_commit_fix/Products/SQLAlchemyDA/tests/testSQLAlchemyDA.py
===================================================================
--- Products.SQLAlchemyDA/branches/zsql_commit_fix/Products/SQLAlchemyDA/tests/testSQLAlchemyDA.py 2010-05-02 08:07:20 UTC (rev 111859)
+++ Products.SQLAlchemyDA/branches/zsql_commit_fix/Products/SQLAlchemyDA/tests/testSQLAlchemyDA.py 2010-05-02 09:49:08 UTC (rev 111860)
@@ -7,11 +7,14 @@
"""
-import sys, os, unittest
+import sys
+import os
+import unittest
from Testing import ZopeTestCase
import transaction
from Products.SQLAlchemyDA.da import SAWrapper
+from Products.ZSQLMethods.SQL import manage_addZSQLMethod
from z3c.sqlalchemy import createSAWrapper
from z3c.sqlalchemy.mapper import MappedClassBase
from sqlalchemy import MetaData, Table, Column, Integer, String, Unicode
@@ -19,66 +22,110 @@
ZopeTestCase.installProduct('SQLAlchemyDA', 1)
-class SQLAlchemyDATests(ZopeTestCase.ZopeTestCase):
- def afterSetUp(self):
+metadata = MetaData()
+test_table = Table('test', metadata,
+ Column('id', Integer, primary_key=True),
+ Column('utext', Unicode(255)),
+ Column('text', String(255)))
- self.dsn = os.environ.get('TEST_DSN', 'sqlite:///test')
- wrapper = createSAWrapper(self.dsn)
- metadata = MetaData(bind=wrapper.engine)
- test_table = Table('test', metadata,
- Column('id', Integer, primary_key=True),
- Column('utext', Unicode(255)),
- Column('text', String(255)))
+class Test(MappedClassBase):
+ pass
- class Test(MappedClassBase): pass
- mapper(Test, test_table)
+mapper(Test, test_table)
- metadata.create_all()
- session = wrapper.session
- t1 = Test(id=1, utext=u'Hello world', text='hello world')
- t2 = Test(id=2, utext=u'foo', text='far')
- session.add(t1)
- session.add(t2)
+class TestBase(ZopeTestCase.ZopeTestCase):
def makeOne(self, **kw):
factory = self.app.manage_addProduct['SQLAlchemyDA']
- factory.manage_addSAWrapper(id='da', title='da',
+ factory.manage_addSAWrapper(id='da', title='da',
dsn=self.dsn,
**kw)
return self.app['da']
+
+class SQLAlchemyDATests(TestBase):
+
+ def afterSetUp(self):
+
+ self.dsn = os.environ.get('TEST_DSN', 'sqlite:///test')
+ wrapper = createSAWrapper(self.dsn)
+ metadata.bind = wrapper.engine
+ metadata.create_all()
+ session = wrapper.session
+ t1 = Test(id=1, utext=u'Hello world', text='hello world')
+ t2 = Test(id=2, utext=u'foo', text='far')
+ session.add(t1)
+ session.add(t2)
+
def testSimpleSelect(self):
da = self.makeOne()
rows = da.query('select * from test')
self.assertEqual(len(rows), 2)
-
+
def testSimpleInsert(self):
da = self.makeOne()
rows = da.query("insert into test (id, text) values(42, 'foo')")
-
+
def testSimpleUpdate(self):
da = self.makeOne()
rows = da.query("update test set text='bar'")
+
+class SQLAlchemyDAFunctionalTests(TestBase, ZopeTestCase.FunctionalTestCase):
+
+ def afterSetUp(self):
+ self.folder_path = '/' + self.folder.absolute_url(1)
+ self.dsn = os.environ.get('TEST_DSN', 'sqlite:///test')
+ wrapper = createSAWrapper(self.dsn)
+ metadata.bind = wrapper.engine
+ metadata.create_all()
+ self.session = wrapper.session
+
+ def testZsqlInsert(self):
+ da = self.makeOne()
+ template = "INSERT INTO test (id, text) VALUES (07, 'bar')"
+ manage_addZSQLMethod(self.app, 'zsql_id', 'title', 'da', '', template)
+ self.app['zsql_id']()
+ self.publish(self.folder_path)
+ rows = self.session.query(Test).all()
+ self.assertEqual(len(rows), 1)
+
+ def testORMInsert(self):
+ t1 = Test(id=8, utext=u'Hello world', text='hello world')
+ t2 = Test(id=9, utext=u'foo', text='far')
+ self.session.add(t1)
+ self.session.add(t2)
+ self.publish(self.folder_path)
+ rows = self.session.query(Test).all()
+ self.assertEqual(len(rows), 2)
+
+ def beforeTearDown(self):
+ metadata.drop_all()
+
+
def test_suite():
s = unittest.TestSuite()
- s.addTest(unittest.makeSuite(SQLAlchemyDATests))
+ s.addTests([unittest.makeSuite(SQLAlchemyDATests),
+ unittest.makeSuite(SQLAlchemyDAFunctionalTests)])
return s
+
def main():
unittest.TextTestRunner().run(test_suite())
+
def debug():
test_suite().debug()
+
def pdebug():
import pdb
pdb.run('debug()')
-if __name__=='__main__':
+if __name__ == '__main__':
if len(sys.argv) > 1:
globals()[sys.argv[1]]()
else:
More information about the checkins
mailing list