File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -241,6 +241,23 @@ def deserializer(data):
241241 deserializer = deserializer ) as s :
242242 s ["foo" ] = "bar"
243243
244+ def test_custom_invalid_serializer (self ):
245+ os .mkdir (self .dirname )
246+ self .addCleanup (os_helper .rmtree , self .dirname )
247+
248+ def serializer (obj , protocol = None ):
249+ return ["value with invalid type" ]
250+
251+ def deserializer (data ):
252+ return data .decode ("utf-8" )
253+
254+ # Since the serializer returns None, dbm.error is raised
255+ # by dbm.sqlite3 and TypeError is raised by other backends.
256+ with self .assertRaises ((TypeError , dbm .error )):
257+ with shelve .open (self .fn , serializer = serializer ,
258+ deserializer = deserializer ) as s :
259+ s ["foo" ] = "bar"
260+
244261 def test_custom_incomplete_deserializer (self ):
245262 os .mkdir (self .dirname )
246263 self .addCleanup (os_helper .rmtree , self .dirname )
You can’t perform that action at this time.
0 commit comments