]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
got removed somehow
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 5 May 2006 17:52:00 +0000 (17:52 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 5 May 2006 17:52:00 +0000 (17:52 +0000)
test/engine.py [new file with mode: 0644]

diff --git a/test/engine.py b/test/engine.py
new file mode 100644 (file)
index 0000000..193201f
--- /dev/null
@@ -0,0 +1,64 @@
+from sqlalchemy import *
+
+from testbase import PersistTest
+import testbase
+import unittest, re
+import tables
+
+class TransactionTest(PersistTest):
+    def setUpAll(self):
+        tables.create()
+    def tearDownAll(self):
+        tables.drop()
+    def tearDown(self):
+        tables.delete()
+        
+    def testbasic(self):
+        testbase.db.begin()
+        tables.users.insert().execute(user_name='jack')
+        tables.users.insert().execute(user_name='fred')
+        testbase.db.commit()
+        l = tables.users.select().execute().fetchall()
+        print l
+        self.assert_(len(l) == 2)
+
+    def testrollback(self):
+        testbase.db.begin()
+        tables.users.insert().execute(user_name='jack')
+        tables.users.insert().execute(user_name='fred')
+        testbase.db.rollback()
+        l = tables.users.select().execute().fetchall()
+        print l
+        self.assert_(len(l) == 0)
+
+    @testbase.unsupported('sqlite')
+    def testnested(self):
+        """tests nested sessions.  SQLite should raise an error."""
+        testbase.db.begin()
+        tables.users.insert().execute(user_name='jack')
+        tables.users.insert().execute(user_name='fred')
+        testbase.db.push_session()
+        tables.users.insert().execute(user_name='ed')
+        tables.users.insert().execute(user_name='wendy')
+        testbase.db.pop_session()
+        testbase.db.rollback()
+        l = tables.users.select().execute().fetchall()
+        print l
+        self.assert_(len(l) == 2)
+
+    def testtwo(self):
+        testbase.db.begin()
+        tables.users.insert().execute(user_name='jack')
+        tables.users.insert().execute(user_name='fred')
+        testbase.db.commit()
+        testbase.db.begin()
+        tables.users.insert().execute(user_name='ed')
+        tables.users.insert().execute(user_name='wendy')
+        testbase.db.commit()
+        testbase.db.rollback()
+        l = tables.users.select().execute().fetchall()
+        print l
+        self.assert_(len(l) == 4)
+
+if __name__ == "__main__":
+    testbase.main()