@@ -61,31 +61,31 @@ class ReadOnly(_SQLiteDbmTests):
61
61
def setUp (self ):
62
62
super ().setUp ()
63
63
with dbm_sqlite3 .open (self .filename , "w" ) as db :
64
- db ["key1" ] = "value1"
65
- db ["key2" ] = "value2"
64
+ db [b "key1" ] = "value1"
65
+ db [b "key2" ] = "value2"
66
66
self .db = dbm_sqlite3 .open (self .filename , "r" )
67
67
68
68
def tearDown (self ):
69
69
self .db .close ()
70
70
super ().tearDown ()
71
71
72
72
def test_readonly_read (self ):
73
- self .assertEqual (self .db ["key1" ], "value1" )
74
- self .assertEqual (self .db ["key2" ], "value2" )
73
+ self .assertEqual (self .db [b "key1" ], b "value1" )
74
+ self .assertEqual (self .db [b "key2" ], b "value2" )
75
75
76
76
def test_readonly_write (self ):
77
77
with self .assertRaises (dbm_sqlite3 .error ):
78
- self .db ["new" ] = "value"
78
+ self .db [b "new" ] = "value"
79
79
80
80
def test_readonly_delete (self ):
81
81
with self .assertRaises (dbm_sqlite3 .error ):
82
- del self .db ["key1" ]
82
+ del self .db [b "key1" ]
83
83
84
84
def test_readonly_keys (self ):
85
- self .assertEqual (self .db .keys (), ["key1" , "key2" ])
85
+ self .assertEqual (self .db .keys (), [b "key1" , b "key2" ])
86
86
87
87
def test_readonly_iter (self ):
88
- self .assertEqual ([k for k in self .db ], ["key1" , "key2" ])
88
+ self .assertEqual ([k for k in self .db ], [b "key1" , b "key2" ])
89
89
90
90
91
91
class ReadWrite (_SQLiteDbmTests ):
@@ -108,19 +108,19 @@ def test_readwrite_unique_key(self):
108
108
self .db ["key" ] = "value"
109
109
self .db ["key" ] = "other"
110
110
keys , vals = self .db_content ()
111
- self .assertEqual (keys , ["key" ])
112
- self .assertEqual (vals , ["other" ])
111
+ self .assertEqual (keys , [b "key" ])
112
+ self .assertEqual (vals , [b "other" ])
113
113
114
114
def test_readwrite_delete (self ):
115
115
self .db ["key" ] = "value"
116
116
self .db ["new" ] = "other"
117
117
118
- del self .db ["new" ]
118
+ del self .db [b "new" ]
119
119
keys , vals = self .db_content ()
120
- self .assertEqual (keys , ["key" ])
121
- self .assertEqual (vals , ["value" ])
120
+ self .assertEqual (keys , [b "key" ])
121
+ self .assertEqual (vals , [b "value" ])
122
122
123
- del self .db ["key" ]
123
+ del self .db [b "key" ]
124
124
keys , vals = self .db_content ()
125
125
self .assertEqual (keys , [])
126
126
self .assertEqual (vals , [])
@@ -131,7 +131,7 @@ def test_readwrite_null_key(self):
131
131
132
132
def test_readwrite_null_value (self ):
133
133
with self .assertRaises (dbm_sqlite3 .error ):
134
- self .db ["key" ] = None
134
+ self .db [b "key" ] = None
135
135
136
136
137
137
class Misuse (_SQLiteDbmTests ):
@@ -147,7 +147,7 @@ def tearDown(self):
147
147
def test_misuse_double_create (self ):
148
148
self .db ["key" ] = "value"
149
149
with dbm_sqlite3 .open (self .filename , "c" ) as db :
150
- self .assertEqual (db ["key" ], "value" )
150
+ self .assertEqual (db [b "key" ], b "value" )
151
151
152
152
def test_misuse_double_close (self ):
153
153
self .db .close ()
@@ -159,13 +159,13 @@ def test_misuse_invalid_flag(self):
159
159
160
160
def test_misuse_double_delete (self ):
161
161
self .db ["key" ] = "value"
162
- del self .db ["key" ]
162
+ del self .db [b "key" ]
163
163
with self .assertRaises (KeyError ):
164
- del self .db ["key" ]
164
+ del self .db [b "key" ]
165
165
166
166
def test_misuse_invalid_key (self ):
167
167
with self .assertRaises (KeyError ):
168
- self .db ["key" ]
168
+ self .db [b "key" ]
169
169
170
170
def test_misuse_iter_close1 (self ):
171
171
self .db ["1" ] = 1
@@ -186,11 +186,11 @@ def test_misuse_iter_close2(self):
186
186
def test_misuse_use_after_close (self ):
187
187
self .db .close ()
188
188
with self .assertRaises (dbm_sqlite3 .error ):
189
- self .db ["read" ]
189
+ self .db [b "read" ]
190
190
with self .assertRaises (dbm_sqlite3 .error ):
191
- self .db ["write" ] = "value"
191
+ self .db [b "write" ] = "value"
192
192
with self .assertRaises (dbm_sqlite3 .error ):
193
- del self .db ["del" ]
193
+ del self .db [b "del" ]
194
194
with self .assertRaises (dbm_sqlite3 .error ):
195
195
len (self .db )
196
196
with self .assertRaises (dbm_sqlite3 .error ):
@@ -208,7 +208,12 @@ def test_misuse_empty_filename(self):
208
208
209
209
class DataTypes (_SQLiteDbmTests ):
210
210
211
- dataset = 10 , 2.5 , "string" , b"bytes"
211
+ dataset = (
212
+ # (raw, coerced)
213
+ (42 , b"42" ),
214
+ (3.14 , b"3.14" ),
215
+ ("string" , b"string" ),
216
+ )
212
217
213
218
def setUp (self ):
214
219
super ().setUp ()
@@ -219,16 +224,20 @@ def tearDown(self):
219
224
super ().tearDown ()
220
225
221
226
def test_datatypes_values (self ):
222
- for value in self .dataset :
223
- with self .subTest (value = value ):
224
- self .db ["key" ] = value
225
- self .assertEqual (self .db ["key" ], value )
227
+ for raw , coerced in self .dataset :
228
+ with self .subTest (raw = raw , coerced = coerced ):
229
+ self .db ["key" ] = raw
230
+ self .assertEqual (self .db [b "key" ], coerced )
226
231
227
232
def test_datatypes_keys (self ):
228
- for key in self .dataset :
229
- with self .subTest (key = key ):
230
- self .db [key ] = "value"
231
- self .assertEqual (self .db [key ], "value" )
233
+ for raw , coerced in self .dataset :
234
+ with self .subTest (raw = raw , coerced = coerced ):
235
+ self .db [raw ] = "value"
236
+ self .assertEqual (self .db [coerced ], b"value" )
237
+ with self .assertRaises (KeyError ):
238
+ self .db [raw ]
239
+ with self .assertRaises (KeyError ):
240
+ del self .db [raw ]
232
241
233
242
234
243
class CorruptDatabase (_SQLiteDbmTests ):
@@ -284,9 +293,9 @@ def test_corrupt_readwrite(self):
284
293
def test_corrupt_force_new (self ):
285
294
with closing (dbm_sqlite3 .open (self .filename , "n" )) as db :
286
295
db ["foo" ] = "write"
287
- _ = db ["foo" ]
296
+ _ = db [b "foo" ]
288
297
next (iter (db ))
289
- del db ["foo" ]
298
+ del db [b "foo" ]
290
299
291
300
292
301
if __name__ == "__main__" :
0 commit comments