Skip to content

Commit 54188bd

Browse files
committed
Update the serializer and deserializer functions
1 parent 9918531 commit 54188bd

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

Lib/test/test_shelve.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import shelve
55
import pickle
66
import os
7-
from io import BytesIO
87

98
from test.support import import_helper, os_helper
109
from collections.abc import MutableMapping
@@ -183,8 +182,7 @@ def serializer(obj, protocol):
183182

184183
def deserializer(data):
185184
if isinstance(data, (bytes, bytearray, str)):
186-
value = BytesIO(data).read()
187-
return value.decode("utf-8")
185+
return data.decode("utf-8")
188186
elif isinstance(data, array.array):
189187
return array.array("b", data)
190188
else:
@@ -240,14 +238,14 @@ def serializer(obj, protocol=None):
240238
pass
241239

242240
def deserializer(data):
243-
return BytesIO(data).read().decode("utf-8")
241+
return data.decode("utf-8")
244242

245243
with shelve.open(self.fn, serializer=serializer,
246244
deserializer=deserializer) as s:
247245
s["foo"] = "bar"
248246

249247
def serializer(obj, protocol=None):
250-
return bytes(type(obj).__name__, 'utf-8')
248+
return type(obj).__name__.encode("utf-8")
251249

252250
def deserializer(data):
253251
pass
@@ -262,14 +260,13 @@ def test_custom_serializer_and_deserializer_bsd_db_shelf(self):
262260
berkeleydb = import_helper.import_module("berkeleydb")
263261

264262
def serializer(obj, protocol=None):
263+
data = obj.__class__.__name__
265264
if protocol == 5:
266-
return bytes(f"{len(type(obj).__name__)}", encoding="utf-8")
267-
else:
268-
return bytes(f"{type(obj).__name__}", "utf-8")
265+
data = str(len(data))
266+
return data.encode("utf-8")
269267

270268
def deserializer(data):
271-
value = BytesIO(data).read()
272-
return value.decode("utf-8")
269+
return data.decode("utf-8")
273270

274271
os.mkdir(self.dirname)
275272
self.addCleanup(os_helper.rmtree, self.dirname)
@@ -384,9 +381,11 @@ def deserializer(data):
384381

385382
def test_custom_incomplete_serializer_and_deserializer_bsd_db_shelf(self):
386383
berkeleydb = import_helper.import_module("berkeleydb")
384+
os.mkdir(self.dirname)
385+
self.addCleanup(os_helper.rmtree, self.dirname)
387386

388387
def serializer(obj, protocol=None):
389-
return bytes(type(obj).__name__, 'utf-8')
388+
return type(obj).__name__.encode("utf-8")
390389

391390
def deserializer(data):
392391
pass
@@ -402,7 +401,7 @@ def serializer(obj, protocol=None):
402401
pass
403402

404403
def deserializer(data):
405-
return BytesIO(data).read().decode("utf-8")
404+
return data.decode("utf-8")
406405

407406
with shelve.BsdDbShelf(berkeleydb.btopen(self.fn),
408407
serializer=serializer,

0 commit comments

Comments
 (0)