Skip to content

Commit 011e062

Browse files
Added test cases for autocommit, changing passwords and the end-to-end tracing
attributes.
1 parent 885904c commit 011e062

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

test/Connection.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,16 @@ def __ConnectAndDrop(self):
2222
count, = cursor.fetchone()
2323
self.assertEqual(count, 10)
2424

25+
def __VerifyAttributes(self, connection, attrName, value, tableName,
26+
columnName):
27+
setattr(connection, attrName, value)
28+
cursor = connection.cursor()
29+
sql = "select %s from %s where %s = :value" % \
30+
(columnName, tableName, columnName)
31+
cursor.execute(sql, value = value)
32+
result, = cursor.fetchone()
33+
self.assertEqual(result, value, "%s value mismatch" % attrName)
34+
2535
def setUp(self):
2636
self.username = USERNAME
2737
self.password = PASSWORD
@@ -32,13 +42,49 @@ def verifyArgs(self, connection):
3242
"user name differs")
3343
self.assertEqual(connection.tnsentry, self.tnsentry,
3444
"tnsentry differs")
45+
self.assertEqual(connection.dsn, self.tnsentry, "dsn differs")
3546

3647
def testAllArgs(self):
3748
"connection to database with user, password, TNS separate"
3849
connection = cx_Oracle.connect(self.username, self.password,
3950
self.tnsentry)
4051
self.verifyArgs(connection)
4152

53+
def testAttributes(self):
54+
"test connection end-to-end tracing attributes"
55+
connection = cx_Oracle.connect(USERNAME, PASSWORD, TNSENTRY)
56+
self.__VerifyAttributes(connection, "action", "cx_OracleTest_Action",
57+
"v$session", "action")
58+
self.__VerifyAttributes(connection, "module", "cx_OracleTest_Module",
59+
"v$session", "module")
60+
self.__VerifyAttributes(connection, "clientinfo",
61+
"cx_OracleTest_CInfo", "v$session", "client_info")
62+
self.__VerifyAttributes(connection, "client_identifier",
63+
"cx_OracleTest_CID", "v$session", "client_identifier")
64+
self.__VerifyAttributes(connection, "dbop",
65+
"cx_OracleTest_DBOP", "v$sql_monitor", "dbop_name")
66+
67+
def testAutoCommit(self):
68+
"test use of autocommit"
69+
connection = cx_Oracle.connect(USERNAME, PASSWORD, TNSENTRY)
70+
cursor = connection.cursor()
71+
otherConnection = cx_Oracle.connect(USERNAME, PASSWORD, TNSENTRY)
72+
otherCursor = otherConnection.cursor()
73+
cursor.execute("truncate table TestTempTable")
74+
cursor.execute("""
75+
insert into TestTempTable (IntCol, StringCol)
76+
values (1, null)""")
77+
otherCursor.execute("select * from TestTempTable")
78+
rows = otherCursor.fetchall()
79+
self.assertEqual(rows, [])
80+
connection.autocommit = True
81+
cursor.execute("""
82+
insert into TestTempTable (IntCol, StringCol)
83+
values (2, null)""")
84+
otherCursor.execute("select * from TestTempTable order by IntCol")
85+
rows = otherCursor.fetchall()
86+
self.assertEqual(rows, [(1, None), (2, None)])
87+
4288
def testBadConnectString(self):
4389
"connection to database with bad connect string"
4490
self.assertRaises(cx_Oracle.DatabaseError, cx_Oracle.connect,
@@ -53,6 +99,16 @@ def testBadPassword(self):
5399
self.assertRaises(cx_Oracle.DatabaseError, cx_Oracle.connect,
54100
self.username, self.password + u"X", self.tnsentry)
55101

102+
def testChangePassword(self):
103+
"test changing password"
104+
newPassword = "NEW_PASSWORD"
105+
connection = cx_Oracle.connect(self.username, self.password,
106+
self.tnsentry)
107+
connection.changepassword(self.password, newPassword)
108+
cconnection = cx_Oracle.connect(self.username, newPassword,
109+
self.tnsentry)
110+
connection.changepassword(newPassword, self.password)
111+
56112
def testEncodings(self):
57113
"connection with only encoding or nencoding specified should work"
58114
connection = cx_Oracle.connect(self.username, self.password,

test/SessionPool.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def testPool(self):
3434
encoding = ENCODING, nencoding = NENCODING)
3535
self.assertEqual(pool.username, USERNAME, "user name differs")
3636
self.assertEqual(pool.tnsentry, TNSENTRY, "tnsentry differs")
37+
self.assertEqual(pool.dsn, TNSENTRY, "dsn differs")
3738
self.assertEqual(pool.max, 8, "max differs")
3839
self.assertEqual(pool.min, 2, "min differs")
3940
self.assertEqual(pool.increment, 3, "increment differs")

0 commit comments

Comments
 (0)