Added additional test cases and corrected test case for ltxid when

using 11.2 client.
This commit is contained in:
Anthony Tuininga 2018-05-09 19:36:13 -06:00
parent 756442ee24
commit 005a00c03d
2 changed files with 50 additions and 1 deletions

View File

@ -48,6 +48,29 @@ class TestConnection(TestCase):
self.tnsentry) self.tnsentry)
self.verifyArgs(connection) self.verifyArgs(connection)
def testAppContext(self):
"test use of application context"
namespace = "CLIENTCONTEXT"
appContextEntries = [
( namespace, "ATTR1", "VALUE1" ),
( namespace, "ATTR2", "VALUE2" ),
( namespace, "ATTR3", "VALUE3" )
]
connection = cx_Oracle.connect(self.username, self.password,
self.tnsentry, appcontext = appContextEntries)
cursor = connection.cursor()
for namespace, name, value in appContextEntries:
cursor.execute("select sys_context(:1, :2) from dual",
(namespace, name))
actualValue, = cursor.fetchone()
self.assertEqual(actualValue, value)
def testAppContextNegative(self):
"test invalid use of application context"
self.assertRaises(TypeError, cx_Oracle.connect, self.username,
self.password, self.tnsentry,
appcontext = [('userenv', 'action')])
def testAttributes(self): def testAttributes(self):
"test connection end-to-end tracing attributes" "test connection end-to-end tracing attributes"
connection = cx_Oracle.connect(USERNAME, PASSWORD, TNSENTRY) connection = cx_Oracle.connect(USERNAME, PASSWORD, TNSENTRY)
@ -111,6 +134,14 @@ class TestConnection(TestCase):
self.tnsentry) self.tnsentry)
connection.changepassword(newPassword, self.password) connection.changepassword(newPassword, self.password)
def testChangePasswordNegative(self):
"test changing password to an invalid value"
newPassword = "1" * 150
connection = cx_Oracle.connect(self.username, self.password,
self.tnsentry)
self.assertRaises(cx_Oracle.DatabaseError, connection.changepassword,
self.password, newPassword)
def testEncodings(self): def testEncodings(self):
"connection with only encoding or nencoding specified should work" "connection with only encoding or nencoding specified should work"
connection = cx_Oracle.connect(self.username, self.password, connection = cx_Oracle.connect(self.username, self.password,
@ -301,7 +332,8 @@ class TestConnection(TestCase):
connection = cx_Oracle.connect(self.username, self.password, connection = cx_Oracle.connect(self.username, self.password,
self.tnsentry, encoding = "UTF-8") self.tnsentry, encoding = "UTF-8")
self.assertEqual(connection.maxBytesPerCharacter, 4) self.assertEqual(connection.maxBytesPerCharacter, 4)
self.assertEqual(connection.ltxid, b'') if CLIENT_VERSION >= (12, 1):
self.assertEqual(connection.ltxid, b'')
self.assertEqual(connection.current_schema, None) self.assertEqual(connection.current_schema, None)
connection.current_schema = "test_schema" connection.current_schema = "test_schema"
self.assertEqual(connection.current_schema, "test_schema") self.assertEqual(connection.current_schema, "test_schema")
@ -315,6 +347,19 @@ class TestConnection(TestCase):
self.assertRaises(TypeError, connection.stmtcachesize, 20.5) self.assertRaises(TypeError, connection.stmtcachesize, 20.5)
self.assertRaises(TypeError, connection.stmtcachesize, "value") self.assertRaises(TypeError, connection.stmtcachesize, "value")
def testClosedConnectionAttributes(self):
"test closed connection attribute values"
connection = cx_Oracle.connect(self.username, self.password,
self.tnsentry)
connection.close()
attrNames = ["current_schema", "edition", "external_name",
"internal_name", "stmtcachesize"]
if CLIENT_VERSION >= (12, 1):
attrNames.append("ltxid")
for name in attrNames:
self.assertRaises(cx_Oracle.DatabaseError, getattr, connection,
name)
def testPing(self): def testPing(self):
"test connection ping" "test connection ping"
connection = cx_Oracle.connect(self.username, self.password, connection = cx_Oracle.connect(self.username, self.password,

View File

@ -541,6 +541,10 @@ class TestCursor(BaseTestCase):
self.assertEqual(self.cursor.description, self.assertEqual(self.cursor.description,
[ ('LONGINTCOL', cx_Oracle.NUMBER, 17, None, 16, 0, 0) ]) [ ('LONGINTCOL', cx_Oracle.NUMBER, 17, None, 16, 0, 0) ])
def testSetOutputSize(self):
"test cursor.setoutputsize() does not fail (but does nothing)"
self.cursor.setoutputsize(100, 2)
def testVarNegative(self): def testVarNegative(self):
"test cursor.var() with invalid parameters" "test cursor.var() with invalid parameters"
self.assertRaises(TypeError, self.cursor.var, 5) self.assertRaises(TypeError, self.cursor.var, 5)