示例#1
0
 def test04_SteadyDBConnection(self):
     db = SteadyDBconnect(dbapi, 0, None, None, None, True, "SteadyDBTestDB", user="******")
     self.assert_(isinstance(db, SteadyDBConnection))
     self.assert_(hasattr(db, "_con"))
     self.assert_(hasattr(db, "_usage"))
     self.assertEqual(db._usage, 0)
     self.assert_(hasattr(db._con, "valid"))
     self.assert_(db._con.valid)
     self.assert_(hasattr(db._con, "cursor"))
     self.assert_(hasattr(db._con, "close"))
     self.assert_(hasattr(db._con, "open_cursors"))
     self.assert_(hasattr(db._con, "num_uses"))
     self.assert_(hasattr(db._con, "num_queries"))
     self.assert_(hasattr(db._con, "session"))
     self.assert_(hasattr(db._con, "database"))
     self.assertEqual(db._con.database, "SteadyDBTestDB")
     self.assert_(hasattr(db._con, "user"))
     self.assertEqual(db._con.user, "SteadyDBTestUser")
     self.assert_(hasattr(db, "cursor"))
     self.assert_(hasattr(db, "close"))
     self.assertEqual(db._con.open_cursors, 0)
     for i in range(3):
         cursor = db.cursor()
         self.assertEqual(db._con.open_cursors, 1)
         cursor.close()
         self.assertEqual(db._con.open_cursors, 0)
     cursor = []
     for i in range(3):
         cursor.append(db.cursor())
         self.assertEqual(db._con.open_cursors, i + 1)
     del cursor
     self.assertEqual(db._con.open_cursors, 0)
     cursor = db.cursor()
     self.assert_(hasattr(cursor, "execute"))
     self.assert_(hasattr(cursor, "fetchone"))
     self.assert_(hasattr(cursor, "callproc"))
     self.assert_(hasattr(cursor, "close"))
     self.assert_(hasattr(cursor, "valid"))
     self.assert_(cursor.valid)
     self.assertEqual(db._con.open_cursors, 1)
     for i in range(3):
         self.assertEqual(db._usage, i)
         self.assertEqual(db._con.num_uses, i)
         self.assertEqual(db._con.num_queries, i)
         cursor.execute("select test%d" % i)
         self.assertEqual(cursor.fetchone(), "test%d" % i)
     self.assert_(cursor.valid)
     self.assertEqual(db._con.open_cursors, 1)
     for i in range(4):
         cursor.callproc("test")
     cursor.close()
     self.assert_(not cursor.valid)
     self.assertEqual(db._con.open_cursors, 0)
     self.assertEqual(db._usage, 7)
     self.assertEqual(db._con.num_uses, 7)
     self.assertEqual(db._con.num_queries, 3)
     cursor.close()
     cursor.execute("select test8")
     self.assert_(cursor.valid)
     self.assertEqual(db._con.open_cursors, 1)
     self.assertEqual(cursor.fetchone(), "test8")
     self.assertEqual(db._usage, 8)
     self.assertEqual(db._con.num_uses, 8)
     self.assertEqual(db._con.num_queries, 4)
     self.assert_(db._con.valid)
     db.close()
     self.assert_(not db._con.valid)
     self.assertEqual(db._con.open_cursors, 0)
     self.assertEqual(db._usage, 8)
     self.assertEqual(db._con.num_uses, 0)
     self.assertEqual(db._con.num_queries, 0)
     self.assertRaises(InternalError, db._con.close)
     db.close()
     self.assertRaises(InternalError, db._con.cursor)
     cursor = db.cursor()
     self.assert_(db._con.valid)
     cursor.execute("select test11")
     self.assertEqual(cursor.fetchone(), "test11")
     cursor.execute("select test12")
     self.assertEqual(cursor.fetchone(), "test12")
     cursor.callproc("test")
     self.assertEqual(db._usage, 3)
     self.assertEqual(db._con.num_uses, 3)
     self.assertEqual(db._con.num_queries, 2)
     cursor2 = db.cursor()
     self.assertEqual(db._con.open_cursors, 2)
     cursor2.execute("select test13")
     self.assertEqual(cursor2.fetchone(), "test13")
     self.assertEqual(db._con.num_queries, 3)
     db.close()
     self.assertEqual(db._con.open_cursors, 0)
     self.assertEqual(db._con.num_queries, 0)
     cursor = db.cursor()
     self.assert_(cursor.valid)
     cursor.callproc("test")
     cursor._cursor.valid = False
     self.assert_(not cursor.valid)
     self.assertRaises(InternalError, cursor._cursor.callproc, "test")
     cursor.callproc("test")
     self.assert_(cursor.valid)
     cursor._cursor.callproc("test")
     self.assertEqual(db._usage, 2)
     self.assertEqual(db._con.num_uses, 3)
     db._con.valid = cursor._cursor.valid = False
     cursor.callproc("test")
     self.assert_(cursor.valid)
     self.assertEqual(db._usage, 1)
     self.assertEqual(db._con.num_uses, 1)
     cursor.execute("set doit")
     db.commit()
     cursor.execute("set dont")
     db.rollback()
     self.assertEqual(db._con.session, ["doit", "commit", "dont", "rollback"])