home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 January / maximum-cd-2011-01.iso / DiscContents / calibre-0.7.26.msi / file_2935 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-10-31  |  2.6 KB  |  85 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from __future__ import with_statement
  5. import unittest
  6. import sqlite3 as sqlite
  7. did_rollback = False
  8.  
  9. class MyConnection(sqlite.Connection):
  10.     
  11.     def rollback(self):
  12.         global did_rollback
  13.         did_rollback = True
  14.         sqlite.Connection.rollback(self)
  15.  
  16.  
  17.  
  18. class ContextTests(unittest.TestCase):
  19.     
  20.     def setUp(self):
  21.         global did_rollback
  22.         self.con = sqlite.connect(':memory:', factory = MyConnection)
  23.         self.con.execute('create table test(c unique)')
  24.         did_rollback = False
  25.  
  26.     
  27.     def tearDown(self):
  28.         self.con.close()
  29.  
  30.     
  31.     def CheckContextManager(self):
  32.         self.con.__enter__()
  33.         
  34.         try:
  35.             pass
  36.         finally:
  37.             pass
  38.  
  39.  
  40.     
  41.     def CheckContextManagerCommit(self):
  42.         self.con.__enter__()
  43.         
  44.         try:
  45.             self.con.execute("insert into test(c) values ('foo')")
  46.         finally:
  47.             pass
  48.  
  49.         self.con.rollback()
  50.         count = self.con.execute('select count(*) from test').fetchone()[0]
  51.         self.failUnlessEqual(count, 1)
  52.  
  53.     
  54.     def CheckContextManagerRollback(self):
  55.         self.failUnlessEqual(did_rollback, False)
  56.         
  57.         try:
  58.             self.con.__enter__()
  59.             
  60.             try:
  61.                 self.con.execute('insert into test(c) values (4)')
  62.                 self.con.execute('insert into test(c) values (4)')
  63.             finally:
  64.                 pass
  65.  
  66.         except sqlite.IntegrityError:
  67.             pass
  68.  
  69.         self.failUnlessEqual(did_rollback, True)
  70.  
  71.  
  72.  
  73. def suite():
  74.     ctx_suite = unittest.makeSuite(ContextTests, 'Check')
  75.     return unittest.TestSuite((ctx_suite,))
  76.  
  77.  
  78. def test():
  79.     runner = unittest.TextTestRunner()
  80.     runner.run(suite())
  81.  
  82. if __name__ == '__main__':
  83.     test()
  84.  
  85.