@@ -86,6 +86,30 @@ def testCallProc(self):
86
86
results = self .cursor .callproc ("proc_Test" , ("hi" , 5 , var ))
87
87
self .assertEqual (results , ["hi" , 10 , 2.0 ])
88
88
89
+ def testCallProcAllKeywords (self ):
90
+ "test executing a stored procedure with args in keywordParameters"
91
+ kwargs = dict (a_InOutValue = self .cursor .var (cx_Oracle .NUMBER ),
92
+ a_InValue = "hi" , a_OutValue = self .cursor .var (cx_Oracle .NUMBER ))
93
+ kwargs ['a_InOutValue' ].setvalue (0 , 5 )
94
+ results = self .cursor .callproc ("proc_Test" , keywordParameters = kwargs )
95
+ self .assertEqual (results , [])
96
+ self .assertEqual (kwargs ['a_InOutValue' ].getvalue (), 10 )
97
+ self .assertEqual (kwargs ['a_OutValue' ].getvalue (), 2.0 )
98
+
99
+ def testCallProcOnlyLastKeyword (self ):
100
+ "test executing a stored procedure with last arg in keywordParameters"
101
+ kwargs = dict (a_OutValue = self .cursor .var (cx_Oracle .NUMBER ))
102
+ results = self .cursor .callproc ("proc_Test" , ("hi" , 5 ), kwargs )
103
+ self .assertEqual (results , ["hi" , 10 ])
104
+ self .assertEqual (kwargs ['a_OutValue' ].getvalue (), 2.0 )
105
+
106
+ def testCallProcRepeatedKeywordParameters (self ):
107
+ "test executing a stored procedure, repeated arg in keywordParameters"
108
+ kwargs = dict (a_InValue = "hi" ,
109
+ a_OutValue = self .cursor .var (cx_Oracle .NUMBER ))
110
+ self .assertRaises (cx_Oracle .DatabaseError , self .cursor .callproc ,
111
+ "proc_Test" , parameters = ("hi" , 5 ), keywordParameters = kwargs )
112
+
89
113
def testCallProcNoArgs (self ):
90
114
"""test executing a stored procedure without any arguments"""
91
115
results = self .cursor .callproc (u"proc_TestNoArgs" )
0 commit comments