[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