@@ -144,6 +144,306 @@ def test_4110(self):
144
144
self .assertEqual (results , ["hi" , 10 ])
145
145
self .assertEqual (out_value .getvalue (), 2.0 )
146
146
147
+ def test_4111 (self ):
148
+ "4111 - test callproc with setinputsizes"
149
+ out_value = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
150
+ self .cursor .setinputsizes (
151
+ oracledb .DB_TYPE_VARCHAR , oracledb .DB_TYPE_NUMBER , out_value
152
+ )
153
+ results = self .cursor .callproc ("proc_Test2" , ("hi" , 5 , out_value ))
154
+ self .assertEqual (results , ["hi" , 10 , True ])
155
+ self .assertTrue (out_value .getvalue ())
156
+
157
+ def test_4112 (self ):
158
+ "4112 - test callfunc with setinputsizes"
159
+ self .cursor .setinputsizes (
160
+ oracledb .DB_TYPE_NUMBER ,
161
+ oracledb .DB_TYPE_VARCHAR ,
162
+ oracledb .DB_TYPE_NUMBER ,
163
+ oracledb .DB_TYPE_BOOLEAN ,
164
+ )
165
+ results = self .cursor .callfunc (
166
+ "func_Test2" , oracledb .NUMBER , ("hi" , 5 , True )
167
+ )
168
+ self .assertEqual (results , 7 )
169
+
170
+ def test_4113 (self ):
171
+ "4113 - test callproc with setinputsizes with kwargs"
172
+ out_value = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
173
+ self .cursor .setinputsizes (
174
+ oracledb .DB_TYPE_VARCHAR , oracledb .DB_TYPE_NUMBER , out_value
175
+ )
176
+ kwargs = dict (a_OutValue = out_value )
177
+ results = self .cursor .callproc ("proc_Test2" , ("hi" , 5 ), kwargs )
178
+ self .assertEqual (results , ["hi" , 10 ])
179
+ self .assertTrue (out_value .getvalue ())
180
+
181
+ out_value = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
182
+ self .cursor .setinputsizes (
183
+ oracledb .DB_TYPE_VARCHAR , oracledb .DB_TYPE_NUMBER , out_value
184
+ )
185
+ kwargs = dict (a_InValue = "hi" , a_InOutValue = 5 , a_OutValue = out_value )
186
+ results = self .cursor .callproc ("proc_Test2" , [], kwargs )
187
+ self .assertEqual (results , [])
188
+ self .assertTrue (out_value .getvalue ())
189
+
190
+ self .cursor .setinputsizes (
191
+ oracledb .DB_TYPE_VARCHAR ,
192
+ oracledb .DB_TYPE_NUMBER ,
193
+ oracledb .DB_TYPE_BOOLEAN ,
194
+ )
195
+ kwargs = dict (a_InValue = "hi" , a_InOutValue = 5 , a_OutValue = out_value )
196
+ results = self .cursor .callproc ("proc_Test2" , [], kwargs )
197
+ self .assertEqual (results , [])
198
+ self .assertTrue (out_value .getvalue ())
199
+
200
+ def test_4114 (self ):
201
+ "4114 - test callproc with setinputsizes with kwargs in mixed order"
202
+ out_value = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
203
+ self .cursor .setinputsizes (
204
+ oracledb .DB_TYPE_VARCHAR , oracledb .DB_TYPE_NUMBER , out_value
205
+ )
206
+ kwargs = dict (a_OutValue = out_value , a_InValue = "hi" , a_InOutValue = 5 )
207
+ with self .assertRaisesFullCode ("ORA-06550" ):
208
+ results = self .cursor .callproc (
209
+ "proc_Test2" , keyword_parameters = kwargs
210
+ )
211
+ self .assertEqual (results , [])
212
+ self .assertTrue (out_value .getvalue ())
213
+
214
+ self .cursor .setinputsizes (
215
+ oracledb .DB_TYPE_VARCHAR ,
216
+ oracledb .DB_TYPE_NUMBER ,
217
+ oracledb .DB_TYPE_BOOLEAN ,
218
+ )
219
+ with self .assertRaisesFullCode ("ORA-06550" ):
220
+ self .cursor .callproc ("proc_Test2" , keyword_parameters = kwargs )
221
+
222
+ def test_4115 (self ):
223
+ "4115 - test callfunc with setinputsizes with kwargs"
224
+ extra_amount = self .cursor .var (oracledb .DB_TYPE_NUMBER )
225
+ extra_amount .setvalue (0 , 5 )
226
+ test_values = [
227
+ (["hi" ], dict (a_ExtraAmount = extra_amount , a_Boolean = True )),
228
+ (
229
+ [],
230
+ dict (
231
+ a_String = "hi" , a_ExtraAmount = extra_amount , a_Boolean = True
232
+ ),
233
+ ),
234
+ ]
235
+ for args , kwargs in test_values :
236
+ self .cursor .setinputsizes (
237
+ oracledb .DB_TYPE_NUMBER ,
238
+ oracledb .DB_TYPE_VARCHAR ,
239
+ oracledb .DB_TYPE_NUMBER ,
240
+ oracledb .DB_TYPE_BOOLEAN ,
241
+ )
242
+ results = self .cursor .callfunc (
243
+ "func_Test2" , oracledb .DB_TYPE_NUMBER , args , kwargs
244
+ )
245
+ self .assertEqual (results , 7 )
246
+
247
+ def test_4116 (self ):
248
+ "4116 - test callproc with setinputsizes with extra arguments"
249
+ out_value = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
250
+ test_values = [
251
+ (("hi" , 5 , out_value ), None ),
252
+ (("hi" ,), dict (a_InOutValue = 5 , a_OutValue = out_value )),
253
+ ([], dict (a_InValue = "hi" , a_InOutValue = 5 , a_OutValue = out_value )),
254
+ ]
255
+ for args , kwargs in test_values :
256
+ self .cursor .setinputsizes (
257
+ oracledb .DB_TYPE_VARCHAR ,
258
+ oracledb .NUMBER ,
259
+ out_value ,
260
+ oracledb .DB_TYPE_VARCHAR , # extra argument
261
+ )
262
+ with self .assertRaisesFullCode ("ORA-01036" , "DPY-4009" ):
263
+ self .cursor .callproc ("proc_Test2" , args , kwargs )
264
+
265
+ def test_4117 (self ):
266
+ "4117 - test callfunc with setinputsizes with extra arguments"
267
+ extra_amount = self .cursor .var (oracledb .DB_TYPE_NUMBER )
268
+ extra_amount .setvalue (0 , 5 )
269
+ test_values = [
270
+ (["hi" , extra_amount ], None ),
271
+ (["hi" ], dict (a_ExtraAmount = extra_amount )),
272
+ ([], dict (a_ExtraAmount = extra_amount , a_String = "hi" )),
273
+ ]
274
+ for args , kwargs in test_values :
275
+ self .cursor .setinputsizes (
276
+ oracledb .DB_TYPE_NUMBER ,
277
+ oracledb .DB_TYPE_VARCHAR ,
278
+ oracledb .DB_TYPE_NUMBER ,
279
+ oracledb .DB_TYPE_BOOLEAN ,
280
+ oracledb .DB_TYPE_VARCHAR , # extra argument
281
+ )
282
+ with self .assertRaisesFullCode ("ORA-01036" , "DPY-4009" ):
283
+ self .cursor .callfunc (
284
+ "func_Test2" , oracledb .DB_TYPE_NUMBER , args , kwargs
285
+ )
286
+
287
+ def test_4118 (self ):
288
+ "4118 - test callproc with setinputsizes with too few parameters"
289
+ out_value = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
290
+
291
+ # setinputsizes for 2 args (missed 1 args)
292
+ self .cursor .setinputsizes (
293
+ oracledb .DB_TYPE_VARCHAR , oracledb .DB_TYPE_NUMBER
294
+ )
295
+ results = self .cursor .callproc ("proc_Test2" , ("hi" , 5 , out_value ))
296
+ self .assertEqual (results , ["hi" , 10 , out_value .getvalue ()])
297
+ self .assertTrue (out_value .getvalue ())
298
+
299
+ # setinputsizes for 2 args (missed 1 kwargs)
300
+ self .cursor .setinputsizes (
301
+ oracledb .DB_TYPE_VARCHAR , oracledb .DB_TYPE_NUMBER
302
+ )
303
+ kwargs = dict (a_OutValue = out_value )
304
+ results = self .cursor .callproc ("proc_Test2" , ("hi" , 5 ), kwargs )
305
+ self .assertEqual (results , ["hi" , 10 ])
306
+ self .assertTrue (out_value .getvalue ())
307
+
308
+ # setinputsizes for 1 args (missed 2 args)
309
+ self .cursor .setinputsizes (oracledb .DB_TYPE_VARCHAR )
310
+ results = self .cursor .callproc ("proc_Test2" , ("hi" , 5 , out_value ))
311
+ self .assertEqual (results , ["hi" , 10 , out_value .getvalue ()])
312
+ self .assertTrue (out_value .getvalue ())
313
+
314
+ # setinputsizes for 1 args (missed 1 args and 1 kwargs)
315
+ self .cursor .setinputsizes (oracledb .DB_TYPE_VARCHAR )
316
+ kwargs = dict (a_OutValue = out_value )
317
+ results = self .cursor .callproc ("proc_Test2" , ("hi" , 5 ), kwargs )
318
+ self .assertEqual (results , ["hi" , 10 ])
319
+ self .assertTrue (out_value .getvalue ())
320
+
321
+ # setinputsizes for 2 kwargs (missed 1 kwargs)
322
+ self .cursor .setinputsizes (
323
+ oracledb .DB_TYPE_VARCHAR , oracledb .DB_TYPE_NUMBER
324
+ )
325
+ kwargs = dict (a_InValue = "hi" , a_InOutValue = 5 , a_OutValue = out_value )
326
+ results = self .cursor .callproc ("proc_Test2" , [], kwargs )
327
+ self .assertEqual (results , [])
328
+ self .assertTrue (out_value .getvalue ())
329
+
330
+ def test_4119 (self ):
331
+ """
332
+ 4119 - test callproc with setinputsizes with wrong order of parameters
333
+ """
334
+ # setinputsizes for 2 args (missed 1 kwargs)
335
+ out_value = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
336
+ self .cursor .setinputsizes (bool , oracledb .DB_TYPE_VARCHAR )
337
+ kwargs = dict (a_OutValue = out_value )
338
+ with self .assertRaisesFullCode ("ORA-06550" ):
339
+ self .cursor .callproc ("proc_Test2" , ["hi" , 5 ], kwargs )
340
+
341
+ # setinputsizes for 2 kwargs (missed 1 kwargs)
342
+ self .cursor .setinputsizes (bool , oracledb .DB_TYPE_VARCHAR )
343
+ kwargs = dict (a_InValue = "hi" , a_InOutValue = 5 , a_OutValue = out_value )
344
+ with self .assertRaisesFullCode ("ORA-06550" ):
345
+ self .cursor .callproc ("proc_Test2" , [], kwargs )
346
+
347
+ def test_4120 (self ):
348
+ "4120 - test callfunc with setinputsizes with too few parameters"
349
+ # setinputsizes for return_type and 1 kwargs (missed 2 kwargs)
350
+ bool_var = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
351
+ bool_var .setvalue (0 , False )
352
+ kwargs = dict (a_Boolean = bool_var , a_String = "hi" , a_ExtraAmount = 3 )
353
+ self .cursor .setinputsizes (oracledb .NUMBER , oracledb .DB_TYPE_VARCHAR )
354
+ results = self .cursor .callfunc (
355
+ "func_Test2" , oracledb .NUMBER , [], kwargs
356
+ )
357
+ self .assertEqual (results , - 1 )
358
+
359
+ # setinputsizes for return_type (missed 3 kwargs)
360
+ bool_var .setvalue (0 , False )
361
+ kwargs = dict (a_Boolean = bool_var , a_String = "hi" , a_ExtraAmount = 1 )
362
+ self .cursor .setinputsizes (oracledb .NUMBER )
363
+ results = self .cursor .callfunc (
364
+ "func_Test2" , oracledb .NUMBER , [], kwargs
365
+ )
366
+ self .assertEqual (results , 1 )
367
+
368
+ # setinputsizes for return_type (missed 3 args)
369
+ bool_var .setvalue (0 , True )
370
+ self .cursor .setinputsizes (oracledb .NUMBER )
371
+ results = self .cursor .callfunc (
372
+ "func_Test2" , oracledb .NUMBER , ["hi" , 2 , bool_var ]
373
+ )
374
+ self .assertEqual (results , 4 )
375
+
376
+ def test_4121 (self ):
377
+ """
378
+ 4121 - test callfunc with setinputsizes with wrong order of parameters
379
+ """
380
+ # setinputsizes for 2 args (missed 2 kwargs)
381
+ bool_var = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
382
+ bool_var .setvalue (0 , True )
383
+ self .cursor .setinputsizes (oracledb .NUMBER , oracledb .DB_TYPE_BOOLEAN )
384
+ kwargs = dict (a_Boolean = bool_var )
385
+ with self .assertRaisesFullCode ("ORA-06550" ):
386
+ self .cursor .callfunc (
387
+ "func_Test2" , oracledb .NUMBER , ["hi" , bool_var ], kwargs
388
+ )
389
+
390
+ def test_4122 (self ):
391
+ "4122 - test callfunc with setinputsizes without type for return_type"
392
+ # setinputsizes for 1 args and 1 kwargs
393
+ bool_var = self .cursor .var (oracledb .DB_TYPE_BOOLEAN )
394
+ bool_var .setvalue (0 , False )
395
+ self .cursor .setinputsizes (oracledb .NUMBER , oracledb .DB_TYPE_BOOLEAN )
396
+ kwargs = dict (a_Boolean = bool_var )
397
+ with self .assertRaisesFullCode ("ORA-06550" ):
398
+ self .cursor .callfunc (
399
+ "func_Test2" , oracledb .DB_TYPE_NUMBER , ["hi" ], kwargs
400
+ )
401
+
402
+ # setinputsizes for 2 kwargs (missed 1 kwargs)
403
+ bool_var .setvalue (0 , False )
404
+ kwargs = dict (a_Boolean = bool_var , a_String = "hi" , a_ExtraAmount = 0 )
405
+ self .cursor .setinputsizes (
406
+ oracledb .DB_TYPE_BOOLEAN , oracledb .DB_TYPE_VARCHAR
407
+ )
408
+ results = self .cursor .callfunc (
409
+ "func_Test2" , oracledb .DB_TYPE_NUMBER , [], kwargs
410
+ )
411
+ self .assertEqual (results , 2 )
412
+
413
+ # setinputsizes for 2 args and 1 kwargs
414
+ bool_var .setvalue (0 , False )
415
+ self .cursor .setinputsizes (
416
+ oracledb .DB_TYPE_BOOLEAN , oracledb .DB_TYPE_NUMBER
417
+ )
418
+ kwargs = dict (a_Boolean = bool_var )
419
+ results = self .cursor .callfunc (
420
+ "func_Test2" , oracledb .DB_TYPE_NUMBER , ["Bye" , 2 ], kwargs
421
+ )
422
+ self .assertEqual (results , 1 )
423
+
424
+ # setinputsizes for 2 args (missed 1 args)
425
+ bool_var .setvalue (0 , False )
426
+ self .cursor .setinputsizes (
427
+ oracledb .DB_TYPE_BOOLEAN , oracledb .DB_TYPE_NUMBER
428
+ )
429
+ kwargs = dict (a_Boolean = bool_var )
430
+ results = self .cursor .callfunc (
431
+ "func_Test2" , oracledb .DB_TYPE_NUMBER , ["Light" , - 1 , bool_var ]
432
+ )
433
+ self .assertEqual (results , 6 )
434
+
435
+ def test_4123 (self ):
436
+ "4123 - test executing a procedure with callfunc"
437
+ with self .assertRaisesFullCode ("ORA-06550" ):
438
+ self .cursor .callfunc (
439
+ "proc_Test2" , oracledb .NUMBER , ("hello" , 3 , False )
440
+ )
441
+
442
+ def test_4124 (self ):
443
+ "4124 - test executing a function with callproc"
444
+ with self .assertRaisesFullCode ("ORA-06550" ):
445
+ self .cursor .callproc ("func_Test2" , ("hello" , 5 , True ))
446
+
147
447
148
448
if __name__ == "__main__" :
149
449
test_env .run_test_cases ()
0 commit comments