home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- from __future__ import with_statement
- import unittest
- import sqlite3 as sqlite
- did_rollback = False
-
- class MyConnection(sqlite.Connection):
-
- def rollback(self):
- global did_rollback
- did_rollback = True
- sqlite.Connection.rollback(self)
-
-
-
- class ContextTests(unittest.TestCase):
-
- def setUp(self):
- global did_rollback
- self.con = sqlite.connect(':memory:', factory = MyConnection)
- self.con.execute('create table test(c unique)')
- did_rollback = False
-
-
- def tearDown(self):
- self.con.close()
-
-
- def CheckContextManager(self):
- self.con.__enter__()
-
- try:
- pass
- finally:
- pass
-
-
-
- def CheckContextManagerCommit(self):
- self.con.__enter__()
-
- try:
- self.con.execute("insert into test(c) values ('foo')")
- finally:
- pass
-
- self.con.rollback()
- count = self.con.execute('select count(*) from test').fetchone()[0]
- self.failUnlessEqual(count, 1)
-
-
- def CheckContextManagerRollback(self):
- self.failUnlessEqual(did_rollback, False)
-
- try:
- self.con.__enter__()
-
- try:
- self.con.execute('insert into test(c) values (4)')
- self.con.execute('insert into test(c) values (4)')
- finally:
- pass
-
- except sqlite.IntegrityError:
- pass
-
- self.failUnlessEqual(did_rollback, True)
-
-
-
- def suite():
- ctx_suite = unittest.makeSuite(ContextTests, 'Check')
- return unittest.TestSuite((ctx_suite,))
-
-
- def test():
- runner = unittest.TextTestRunner()
- runner.run(suite())
-
- if __name__ == '__main__':
- test()
-
-