Skip to content

Commit d1bb227

Browse files
committed
refactor nested context managers for better readability
1 parent b0f0bbc commit d1bb227

File tree

1 file changed

+32
-33
lines changed

1 file changed

+32
-33
lines changed

Lib/test/test_shelve.py

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -194,39 +194,38 @@ def deserializer(data):
194194
)
195195

196196
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
197-
with self.subTest(proto=proto):
198-
with shelve.open(
199-
self.fn,
200-
protocol=proto,
201-
serializer=serializer,
202-
deserializer=deserializer,
203-
) as s:
204-
bar = "bar"
205-
bytes_data = b"Hello, world!"
206-
bytearray_data = bytearray(b"\x00\x01\x02\x03\x04")
207-
array_data = array.array("i", [1, 2, 3, 4, 5])
208-
209-
s["foo"] = bar
210-
s["bytes_data"] = bytes_data
211-
s["bytearray_data"] = bytearray_data
212-
s["array_data"] = array_data
213-
214-
if proto == 5:
215-
self.assertEqual(s["foo"], str(bar))
216-
self.assertEqual(s["bytes_data"], "Hello, world!")
217-
self.assertEqual(
218-
s["bytearray_data"], bytearray_data.decode()
219-
)
220-
self.assertEqual(
221-
s["array_data"], array_data.tobytes().decode()
222-
)
223-
else:
224-
self.assertEqual(s["foo"], "str")
225-
self.assertEqual(s["bytes_data"], "bytes")
226-
self.assertEqual(s["bytearray_data"], "bytearray")
227-
self.assertEqual(
228-
s["array_data"], array_data.tobytes().decode()
229-
)
197+
with self.subTest(proto=proto), shelve.open(
198+
self.fn,
199+
protocol=proto,
200+
serializer=serializer,
201+
deserializer=deserializer
202+
) as s:
203+
bar = "bar"
204+
bytes_data = b"Hello, world!"
205+
bytearray_data = bytearray(b"\x00\x01\x02\x03\x04")
206+
array_data = array.array("i", [1, 2, 3, 4, 5])
207+
208+
s["foo"] = bar
209+
s["bytes_data"] = bytes_data
210+
s["bytearray_data"] = bytearray_data
211+
s["array_data"] = array_data
212+
213+
if proto == 5:
214+
self.assertEqual(s["foo"], str(bar))
215+
self.assertEqual(s["bytes_data"], "Hello, world!")
216+
self.assertEqual(
217+
s["bytearray_data"], bytearray_data.decode()
218+
)
219+
self.assertEqual(
220+
s["array_data"], array_data.tobytes().decode()
221+
)
222+
else:
223+
self.assertEqual(s["foo"], "str")
224+
self.assertEqual(s["bytes_data"], "bytes")
225+
self.assertEqual(s["bytearray_data"], "bytearray")
226+
self.assertEqual(
227+
s["array_data"], array_data.tobytes().decode()
228+
)
230229

231230
def test_custom_incomplete_serializer_and_deserializer(self):
232231
dbm_sqlite3 = import_helper.import_module("dbm.sqlite3")

0 commit comments

Comments
 (0)