Fixed crash when using the deprecated parameter name keywordParameters
with Cursor.callproc(); add test cases to cover this and other similar situations.
This commit is contained in:
parent
ce4713c6f7
commit
d585cf06df
@ -10,6 +10,10 @@ For any deprecations, see :ref:`Deprecations <deprecations>`.
|
||||
Version 8.3 (TBD)
|
||||
-----------------
|
||||
|
||||
#) Fixed crash when using the deprecated parameter name `keywordParameters`
|
||||
with :meth:`Cursor.callproc()`.
|
||||
#) Improved the test suite.
|
||||
|
||||
|
||||
Version 8.2 (May 2021)
|
||||
----------------------
|
||||
|
||||
@ -1263,7 +1263,8 @@ static PyObject *cxoCursor_callProc(cxoCursor *cursor, PyObject *args,
|
||||
// parse arguments
|
||||
listOfArguments = keywordArguments = keywordArgumentsDeprecated = NULL;
|
||||
if (!PyArg_ParseTupleAndKeywords(args, keywordArgs, "O|OOO", keywordList,
|
||||
&name, &listOfArguments, &keywordArguments))
|
||||
&name, &listOfArguments, &keywordArguments,
|
||||
&keywordArgumentsDeprecated))
|
||||
return NULL;
|
||||
if (keywordArgumentsDeprecated) {
|
||||
if (keywordArguments) {
|
||||
|
||||
@ -1001,5 +1001,35 @@ class TestCase(test_env.BaseTestCase):
|
||||
self.assertEqual(self.cursor.statement, sql)
|
||||
self.assertEqual(self.cursor.description, None)
|
||||
|
||||
def test_1285_executemany_with_plsql_binds(self):
|
||||
"1285 - test executing plsql statements multiple times (with binds)"
|
||||
var = self.cursor.var(int, arraysize=5)
|
||||
self.cursor.setinputsizes(var)
|
||||
data = [[25], [30], [None], [35], [None]]
|
||||
exepected_data = [25, 30, None, 35, None]
|
||||
self.cursor.executemany("declare t number; begin t := :1; end;", data)
|
||||
self.assertEqual(var.values, exepected_data)
|
||||
|
||||
def test_1286_encodingErrors_deprecation(self):
|
||||
"1286 - test to verify encodingErrors is deprecated"
|
||||
errors = 'strict'
|
||||
self.assertRaises(oracledb.ProgrammingError, self.cursor.var,
|
||||
oracledb.NUMBER, encoding_errors=errors,
|
||||
encodingErrors=errors)
|
||||
|
||||
def test_1287_keywordParameters_deprecation(self):
|
||||
"1287 - test to verify keywordParameters is deprecated"
|
||||
out_value = self.cursor.var(oracledb.NUMBER)
|
||||
kwargs = dict(a_OutValue=out_value)
|
||||
self.assertRaises(oracledb.ProgrammingError, self.cursor.callproc,
|
||||
"proc_Test", ("hi", 5), kwargs,
|
||||
keywordParameters=kwargs)
|
||||
extra_amount = self.cursor.var(oracledb.NUMBER)
|
||||
extra_amount.setvalue(0, 5)
|
||||
kwargs = dict(a_ExtraAmount=extra_amount, a_String="hi")
|
||||
self.assertRaises(oracledb.ProgrammingError, self.cursor.callfunc,
|
||||
"func_Test", oracledb.NUMBER, [], kwargs,
|
||||
keywordParameters=kwargs)
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_env.run_test_cases()
|
||||
|
||||
@ -441,5 +441,22 @@ class TestCase(test_env.BaseTestCase):
|
||||
self.assertEqual(pool.stmtcachesize, 25, "stmtcachesize (25)")
|
||||
self.assertEqual(pool.ping_interval, 25, "ping_interval (25)")
|
||||
|
||||
def test_2418_deprecations(self):
|
||||
"2418 - test to verify deprecations"
|
||||
callback = "pkg_SessionCallback.TheCallback"
|
||||
self.assertRaises(oracledb.ProgrammingError, test_env.get_pool,
|
||||
min=1, max=2, increment=1, wait_timeout=10,
|
||||
waitTimeout=10)
|
||||
self.assertRaises(oracledb.ProgrammingError, test_env.get_pool,
|
||||
min=1, max=2, increment=1, max_lifetime_session=20,
|
||||
maxLifetimeSession=20)
|
||||
self.assertRaises(oracledb.ProgrammingError, test_env.get_pool,
|
||||
min=1, max=2, increment=1, max_sessions_per_shard=1,
|
||||
maxSessionsPerShard=1)
|
||||
self.assertRaises(oracledb.ProgrammingError, test_env.get_pool,
|
||||
min=2, max=8, increment=3,
|
||||
getmode=oracledb.SPOOL_ATTRVAL_NOWAIT,
|
||||
session_callback=callback, sessionCallback=callback)
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_env.run_test_cases()
|
||||
|
||||
@ -371,5 +371,13 @@ class TestCase(test_env.BaseTestCase):
|
||||
otherPrice = book.PRICE
|
||||
self.assertEqual(otherPrice, expectedPrice)
|
||||
|
||||
def test_2716_payloadType_deprecation(self):
|
||||
"2716 - test to verify payloadType is deprecated"
|
||||
self.__clear_books_queue()
|
||||
books_type = self.connection.gettype(self.book_type_name)
|
||||
self.assertRaises(oracledb.ProgrammingError, self.connection.queue,
|
||||
self.book_queue_name, books_type,
|
||||
payloadType=books_type)
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_env.run_test_cases()
|
||||
|
||||
@ -119,5 +119,20 @@ class TestCase(test_env.BaseTestCase):
|
||||
(test_env.get_main_user(), test_env.get_connect_string())
|
||||
self.assertEqual(str(sub), expected)
|
||||
|
||||
def test_3001_deprecations(self):
|
||||
"3001 - test to verify deprecations"
|
||||
connection = test_env.get_connection(threaded=True, events=True)
|
||||
self.assertRaises(oracledb.ProgrammingError, connection.subscribe,
|
||||
ip_address='www.oracle.in',
|
||||
ipAddress='www.oracle.in')
|
||||
self.assertRaises(oracledb.ProgrammingError, connection.subscribe,
|
||||
grouping_class=1, groupingClass=1)
|
||||
self.assertRaises(oracledb.ProgrammingError, connection.subscribe,
|
||||
grouping_value=3, groupingValue=3)
|
||||
self.assertRaises(oracledb.ProgrammingError, connection.subscribe,
|
||||
grouping_type=2, groupingType=2)
|
||||
self.assertRaises(oracledb.ProgrammingError, connection.subscribe,
|
||||
client_initiated=True, clientInitiated=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_env.run_test_cases()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user