Пример #1
0
 def test_cancel_transaction(self):
     db = SteadyDBconnect(dbapi, database='ok')
     cursor = db.cursor()
     db.begin()
     cursor.execute('select test14')
     self.assertEqual(cursor.fetchone(), 'test14')
     db.cancel()
     cursor.execute('select test14')
     self.assertEqual(cursor.fetchone(), 'test14')
Пример #2
0
 def test_reset_transaction(self):
     db = SteadyDBconnect(dbapi, database='ok')
     db.begin()
     self.assertFalse(db._con.session)
     db.close()
     self.assertFalse(db._con.session)
     db = SteadyDBconnect(dbapi, database='ok', closeable=False)
     db.begin()
     self.assertFalse(db._con.session)
     db.close()
     self.assertEqual(db._con.session, ['rollback'])
Пример #3
0
    def test_with_begin_extension(self):
        db = SteadyDBconnect(dbapi, database='ok')
        db._con._begin_called_with = None

        def begin(a, b=None, c=7):
            db._con._begin_called_with = (a, b, c)

        db._con.begin = begin
        db.begin(42, 6)
        cursor = db.cursor()
        cursor.execute('select test13')
        self.assertEqual(cursor.fetchone(), 'test13')
        self.assertEqual(db._con._begin_called_with, (42, 6, 7))
Пример #4
0
    def test_with_cancel_extension(self):
        db = SteadyDBconnect(dbapi, database='ok')
        db._con._cancel_called = None

        def cancel():
            db._con._cancel_called = 'yes'

        db._con.cancel = cancel
        db.begin()
        cursor = db.cursor()
        cursor.execute('select test15')
        self.assertEqual(cursor.fetchone(), 'test15')
        db.cancel()
        self.assertEqual(db._con._cancel_called, 'yes')
Пример #5
0
 def test_connection_maxusage(self):
     db = SteadyDBconnect(dbapi, 10)
     cursor = db.cursor()
     for i in range(100):
         cursor.execute('select test%d' % i)
         r = cursor.fetchone()
         self.assertEqual(r, 'test%d' % i)
         self.assertTrue(db._con.valid)
         j = i % 10 + 1
         self.assertEqual(db._usage, j)
         self.assertEqual(db._con.num_uses, j)
         self.assertEqual(db._con.num_queries, j)
     self.assertEqual(db._con.open_cursors, 1)
     db.begin()
     for i in range(100):
         cursor.callproc('test')
         self.assertTrue(db._con.valid)
         if i == 49:
             db.commit()
         j = i % 10 + 1 if i > 49 else i + 11
         self.assertEqual(db._usage, j)
         self.assertEqual(db._con.num_uses, j)
         j = 0 if i > 49 else 10
         self.assertEqual(db._con.num_queries, j)
     for i in range(10):
         if i == 7:
             db._con.valid = cursor._cursor.valid = False
         cursor.execute('select test%d' % i)
         r = cursor.fetchone()
         self.assertEqual(r, 'test%d' % i)
         j = i % 7 + 1
         self.assertEqual(db._usage, j)
         self.assertEqual(db._con.num_uses, j)
         self.assertEqual(db._con.num_queries, j)
     for i in range(10):
         if i == 5:
             db._con.valid = cursor._cursor.valid = False
         cursor.callproc('test')
         j = (i + (3 if i < 5 else -5)) % 10 + 1
         self.assertEqual(db._usage, j)
         self.assertEqual(db._con.num_uses, j)
         j = 3 if i < 5 else 0
         self.assertEqual(db._con.num_queries, j)
     db.close()
     cursor.execute('select test1')
     self.assertEqual(cursor.fetchone(), 'test1')
     self.assertEqual(db._usage, 1)
     self.assertEqual(db._con.num_uses, 1)
     self.assertEqual(db._con.num_queries, 1)
Пример #6
0
 def test_rollback_error(self):
     db = SteadyDBconnect(dbapi, database='ok')
     db.begin()
     self.assertFalse(db._con.session)
     self.assertTrue(db._con.valid)
     db.rollback()
     self.assertEqual(db._con.session, ['rollback'])
     self.assertTrue(db._con.valid)
     db.begin()
     db._con.valid = False
     con = db._con
     self.assertRaises(dbapi.InternalError, db.rollback)
     self.assertFalse(db._con.session)
     self.assertTrue(db._con.valid)
     self.assertIsNot(con, db._con)
     db.begin()
     self.assertFalse(db._con.session)
     self.assertTrue(db._con.valid)
     db.rollback()
     self.assertEqual(db._con.session, ['rollback'])
     self.assertTrue(db._con.valid)
Пример #7
0
 def test_begin_transaction(self):
     db = SteadyDBconnect(dbapi, database='ok')
     cursor = db.cursor()
     cursor.close()
     cursor.execute('select test12')
     self.assertEqual(cursor.fetchone(), 'test12')
     db.begin()
     cursor = db.cursor()
     cursor.close()
     self.assertRaises(dbapi.InternalError, cursor.execute, 'select test12')
     cursor.execute('select test12')
     self.assertEqual(cursor.fetchone(), 'test12')
     db.close()
     db.begin()
     self.assertRaises(dbapi.InternalError, cursor.execute, 'select test12')
     cursor.execute('select test12')
     self.assertEqual(cursor.fetchone(), 'test12')
     db.begin()
     self.assertRaises(dbapi.ProgrammingError, cursor.execute, 'error')
     cursor.close()
     cursor.execute('select test12')
     self.assertEqual(cursor.fetchone(), 'test12')