@@ -19,24 +19,27 @@ class TestCase(test_env.BaseTestCase):
19
19
def __perform_test (self , typ ):
20
20
name_part = "Long" if typ is oracledb .DB_TYPE_LONG else "LongRaw"
21
21
22
- self .cursor .execute ("truncate table Test%ss" % name_part )
22
+ self .cursor .execute (f"truncate table Test{ name_part } s" )
23
+ self .cursor .setinputsizes (long_string = typ )
23
24
long_string = ""
24
25
for i in range (1 , 11 ):
25
26
char = chr (ord ('A' ) + i - 1 )
26
27
long_string += char * 25000
27
- self .cursor .setinputsizes (long_string = typ )
28
- if typ is oracledb .DB_TYPE_LONG_RAW :
29
- bind_value = long_string .encode ()
28
+ if i % 3 == 1 :
29
+ bind_value = None
30
30
else :
31
- bind_value = long_string
32
- self .cursor .execute ("""
33
- insert into Test%ss (
31
+ if typ is oracledb .DB_TYPE_LONG_RAW :
32
+ bind_value = long_string .encode ()
33
+ else :
34
+ bind_value = long_string
35
+ self .cursor .execute (f"""
36
+ insert into Test{ name_part } s (
34
37
IntCol,
35
- %sCol
38
+ { name_part } Col
36
39
) values (
37
40
:integer_value,
38
41
:long_string
39
- )""" % ( name_part , name_part ) ,
42
+ )""" ,
40
43
integer_value = i ,
41
44
long_string = bind_value )
42
45
self .connection .commit ()
@@ -48,12 +51,16 @@ def __perform_test(self, typ):
48
51
for integer_value , fetched_value in self .cursor :
49
52
char = chr (ord ('A' ) + integer_value - 1 )
50
53
long_string += char * 25000
51
- if typ is oracledb . DB_TYPE_LONG_RAW :
52
- actual_value = long_string . encode ()
54
+ if integer_value % 3 == 1 :
55
+ expected_value = None
53
56
else :
54
- actual_value = long_string
55
- self .assertEqual (len (fetched_value ), integer_value * 25000 )
56
- self .assertEqual (fetched_value , actual_value )
57
+ if typ is oracledb .DB_TYPE_LONG_RAW :
58
+ expected_value = long_string .encode ()
59
+ else :
60
+ expected_value = long_string
61
+ if fetched_value is not None :
62
+ self .assertEqual (len (fetched_value ), integer_value * 25000 )
63
+ self .assertEqual (fetched_value , expected_value )
57
64
58
65
def test_2000_longs (self ):
59
66
"2000 - test binding and fetching long data"
@@ -82,7 +89,7 @@ def test_2003_long_cursor_description(self):
82
89
self .cursor .execute ("select * from TestLongs" )
83
90
expected_value = [
84
91
('INTCOL' , oracledb .DB_TYPE_NUMBER , 10 , None , 9 , 0 , False ),
85
- ('LONGCOL' , oracledb .DB_TYPE_LONG , None , None , None , None , False )
92
+ ('LONGCOL' , oracledb .DB_TYPE_LONG , None , None , None , None , True )
86
93
]
87
94
self .assertEqual (self .cursor .description , expected_value )
88
95
@@ -92,7 +99,7 @@ def test_2004_long_raw_cursor_description(self):
92
99
expected_value = [
93
100
('INTCOL' , oracledb .DB_TYPE_NUMBER , 10 , None , 9 , 0 , False ),
94
101
('LONGRAWCOL' , oracledb .DB_TYPE_LONG_RAW , None , None , None , None ,
95
- False )
102
+ True )
96
103
]
97
104
self .assertEqual (self .cursor .description , expected_value )
98
105
0 commit comments