@@ -61,31 +61,31 @@ class ReadOnly(_SQLiteDbmTests):
6161 def setUp (self ):
6262 super ().setUp ()
6363 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"
6666 self .db = dbm_sqlite3 .open (self .filename , "r" )
6767
6868 def tearDown (self ):
6969 self .db .close ()
7070 super ().tearDown ()
7171
7272 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" )
7575
7676 def test_readonly_write (self ):
7777 with self .assertRaises (dbm_sqlite3 .error ):
78- self .db ["new" ] = "value"
78+ self .db [b "new" ] = "value"
7979
8080 def test_readonly_delete (self ):
8181 with self .assertRaises (dbm_sqlite3 .error ):
82- del self .db ["key1" ]
82+ del self .db [b "key1" ]
8383
8484 def test_readonly_keys (self ):
85- self .assertEqual (self .db .keys (), ["key1" , "key2" ])
85+ self .assertEqual (self .db .keys (), [b "key1" , b "key2" ])
8686
8787 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" ])
8989
9090
9191class ReadWrite (_SQLiteDbmTests ):
@@ -108,19 +108,19 @@ def test_readwrite_unique_key(self):
108108 self .db ["key" ] = "value"
109109 self .db ["key" ] = "other"
110110 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" ])
113113
114114 def test_readwrite_delete (self ):
115115 self .db ["key" ] = "value"
116116 self .db ["new" ] = "other"
117117
118- del self .db ["new" ]
118+ del self .db [b "new" ]
119119 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" ])
122122
123- del self .db ["key" ]
123+ del self .db [b "key" ]
124124 keys , vals = self .db_content ()
125125 self .assertEqual (keys , [])
126126 self .assertEqual (vals , [])
@@ -131,7 +131,7 @@ def test_readwrite_null_key(self):
131131
132132 def test_readwrite_null_value (self ):
133133 with self .assertRaises (dbm_sqlite3 .error ):
134- self .db ["key" ] = None
134+ self .db [b "key" ] = None
135135
136136
137137class Misuse (_SQLiteDbmTests ):
@@ -147,7 +147,7 @@ def tearDown(self):
147147 def test_misuse_double_create (self ):
148148 self .db ["key" ] = "value"
149149 with dbm_sqlite3 .open (self .filename , "c" ) as db :
150- self .assertEqual (db ["key" ], "value" )
150+ self .assertEqual (db [b "key" ], b "value" )
151151
152152 def test_misuse_double_close (self ):
153153 self .db .close ()
@@ -159,13 +159,13 @@ def test_misuse_invalid_flag(self):
159159
160160 def test_misuse_double_delete (self ):
161161 self .db ["key" ] = "value"
162- del self .db ["key" ]
162+ del self .db [b "key" ]
163163 with self .assertRaises (KeyError ):
164- del self .db ["key" ]
164+ del self .db [b "key" ]
165165
166166 def test_misuse_invalid_key (self ):
167167 with self .assertRaises (KeyError ):
168- self .db ["key" ]
168+ self .db [b "key" ]
169169
170170 def test_misuse_iter_close1 (self ):
171171 self .db ["1" ] = 1
@@ -186,11 +186,11 @@ def test_misuse_iter_close2(self):
186186 def test_misuse_use_after_close (self ):
187187 self .db .close ()
188188 with self .assertRaises (dbm_sqlite3 .error ):
189- self .db ["read" ]
189+ self .db [b "read" ]
190190 with self .assertRaises (dbm_sqlite3 .error ):
191- self .db ["write" ] = "value"
191+ self .db [b "write" ] = "value"
192192 with self .assertRaises (dbm_sqlite3 .error ):
193- del self .db ["del" ]
193+ del self .db [b "del" ]
194194 with self .assertRaises (dbm_sqlite3 .error ):
195195 len (self .db )
196196 with self .assertRaises (dbm_sqlite3 .error ):
@@ -208,7 +208,12 @@ def test_misuse_empty_filename(self):
208208
209209class DataTypes (_SQLiteDbmTests ):
210210
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+ )
212217
213218 def setUp (self ):
214219 super ().setUp ()
@@ -219,16 +224,20 @@ def tearDown(self):
219224 super ().tearDown ()
220225
221226 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 )
226231
227232 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 ]
232241
233242
234243class CorruptDatabase (_SQLiteDbmTests ):
@@ -284,9 +293,9 @@ def test_corrupt_readwrite(self):
284293 def test_corrupt_force_new (self ):
285294 with closing (dbm_sqlite3 .open (self .filename , "n" )) as db :
286295 db ["foo" ] = "write"
287- _ = db ["foo" ]
296+ _ = db [b "foo" ]
288297 next (iter (db ))
289- del db ["foo" ]
298+ del db [b "foo" ]
290299
291300
292301if __name__ == "__main__" :
0 commit comments