Skip to content

Commit 6b4be8b

Browse files
committed
refactor nested context managers for better readability
1 parent 791743b commit 6b4be8b

File tree

1 file changed

+105
-106
lines changed

1 file changed

+105
-106
lines changed

Lib/test/test_shelve.py

Lines changed: 105 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -270,112 +270,111 @@ def deserializer(data):
270270
return data.decode("utf-8")
271271

272272
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
273-
with self.subTest(proto=5):
274-
with shelve.BsdDbShelf(
275-
berkeleydb.btopen(self.fn),
276-
protocol=proto,
277-
serializer=serializer,
278-
deserializer=deserializer,
279-
) as s:
280-
bar = "bar"
281-
bytes_data = b"Hello, world!"
282-
bytearray_data = bytearray(b"\x00\x01\x02\x03\x04")
283-
array_data = array.array("i", [1, 2, 3, 4, 5])
284-
285-
s["foo"] = bar
286-
s["bytes_data"] = bytes_data
287-
s["bytearray_data"] = bytearray_data
288-
s["array_data"] = array_data
289-
290-
if proto == 5:
291-
self.assertEqual(
292-
s["foo"], f"{len(type(bar).__name__)}"
293-
)
294-
self.assertEqual(
295-
s["bytes_data"],
296-
f"{len(type(bytes_data).__name__)}",
297-
)
298-
self.assertEqual(
299-
s["bytearray_data"],
300-
f"{len(type(bytearray_data).__name__)}",
301-
)
302-
self.assertEqual(
303-
s["array_data"],
304-
f"{len(type(array_data).__name__)}",
305-
)
306-
307-
key, value = s.set_location(b"foo")
308-
self.assertEqual("foo", key)
309-
self.assertEqual(value, f"{len(type(bar).__name__)}")
310-
311-
key, value = s.previous()
312-
self.assertEqual("bytes_data", key)
313-
self.assertEqual(
314-
value, f"{len(type(bytes_data).__name__)}"
315-
)
316-
317-
key, value = s.previous()
318-
self.assertEqual("bytearray_data", key)
319-
self.assertEqual(
320-
value, f"{len(type(bytearray_data).__name__)}"
321-
)
322-
323-
key, value = s.previous()
324-
self.assertEqual("array_data", key)
325-
self.assertEqual(
326-
value, f"{len(type(array_data).__name__)}"
327-
)
328-
329-
key, value = s.next()
330-
self.assertEqual("bytearray_data", key)
331-
self.assertEqual(
332-
value, f"{len(type(bytearray_data).__name__)}"
333-
)
334-
335-
key, value = s.next()
336-
self.assertEqual("bytes_data", key)
337-
self.assertEqual(
338-
value, f"{len(type(bytes_data).__name__)}"
339-
)
340-
341-
key, value = s.first()
342-
self.assertEqual("array_data", key)
343-
self.assertEqual(
344-
value, f"{len(type(array_data).__name__)}"
345-
)
346-
else:
347-
key, value = s.set_location(b"foo")
348-
self.assertEqual("foo", key)
349-
self.assertEqual(value, "str")
350-
351-
key, value = s.previous()
352-
self.assertEqual("bytes_data", key)
353-
self.assertEqual(value, "bytes")
354-
355-
key, value = s.previous()
356-
self.assertEqual("bytearray_data", key)
357-
self.assertEqual(value, "bytearray")
358-
359-
key, value = s.previous()
360-
self.assertEqual("array_data", key)
361-
self.assertEqual(value, "array")
362-
363-
key, value = s.next()
364-
self.assertEqual("bytearray_data", key)
365-
self.assertEqual(value, "bytearray")
366-
367-
key, value = s.next()
368-
self.assertEqual("bytes_data", key)
369-
self.assertEqual(value, "bytes")
370-
371-
key, value = s.first()
372-
self.assertEqual("array_data", key)
373-
self.assertEqual(value, "array")
374-
375-
self.assertEqual(s["foo"], "str")
376-
self.assertEqual(s["bytes_data"], "bytes")
377-
self.assertEqual(s["bytearray_data"], "bytearray")
378-
self.assertEqual(s["array_data"], "array")
273+
with self.subTest(proto=proto), shelve.BsdDbShelf(
274+
berkeleydb.btopen(self.fn),
275+
protocol=proto,
276+
serializer=serializer,
277+
deserializer=deserializer,
278+
) as s:
279+
bar = "bar"
280+
bytes_data = b"Hello, world!"
281+
bytearray_data = bytearray(b"\x00\x01\x02\x03\x04")
282+
array_data = array.array("i", [1, 2, 3, 4, 5])
283+
284+
s["foo"] = bar
285+
s["bytes_data"] = bytes_data
286+
s["bytearray_data"] = bytearray_data
287+
s["array_data"] = array_data
288+
289+
if proto == 5:
290+
self.assertEqual(
291+
s["foo"], f"{len(type(bar).__name__)}"
292+
)
293+
self.assertEqual(
294+
s["bytes_data"],
295+
f"{len(type(bytes_data).__name__)}",
296+
)
297+
self.assertEqual(
298+
s["bytearray_data"],
299+
f"{len(type(bytearray_data).__name__)}",
300+
)
301+
self.assertEqual(
302+
s["array_data"],
303+
f"{len(type(array_data).__name__)}",
304+
)
305+
306+
key, value = s.set_location(b"foo")
307+
self.assertEqual("foo", key)
308+
self.assertEqual(value, f"{len(type(bar).__name__)}")
309+
310+
key, value = s.previous()
311+
self.assertEqual("bytes_data", key)
312+
self.assertEqual(
313+
value, f"{len(type(bytes_data).__name__)}"
314+
)
315+
316+
key, value = s.previous()
317+
self.assertEqual("bytearray_data", key)
318+
self.assertEqual(
319+
value, f"{len(type(bytearray_data).__name__)}"
320+
)
321+
322+
key, value = s.previous()
323+
self.assertEqual("array_data", key)
324+
self.assertEqual(
325+
value, f"{len(type(array_data).__name__)}"
326+
)
327+
328+
key, value = s.next()
329+
self.assertEqual("bytearray_data", key)
330+
self.assertEqual(
331+
value, f"{len(type(bytearray_data).__name__)}"
332+
)
333+
334+
key, value = s.next()
335+
self.assertEqual("bytes_data", key)
336+
self.assertEqual(
337+
value, f"{len(type(bytes_data).__name__)}"
338+
)
339+
340+
key, value = s.first()
341+
self.assertEqual("array_data", key)
342+
self.assertEqual(
343+
value, f"{len(type(array_data).__name__)}"
344+
)
345+
else:
346+
key, value = s.set_location(b"foo")
347+
self.assertEqual("foo", key)
348+
self.assertEqual(value, "str")
349+
350+
key, value = s.previous()
351+
self.assertEqual("bytes_data", key)
352+
self.assertEqual(value, "bytes")
353+
354+
key, value = s.previous()
355+
self.assertEqual("bytearray_data", key)
356+
self.assertEqual(value, "bytearray")
357+
358+
key, value = s.previous()
359+
self.assertEqual("array_data", key)
360+
self.assertEqual(value, "array")
361+
362+
key, value = s.next()
363+
self.assertEqual("bytearray_data", key)
364+
self.assertEqual(value, "bytearray")
365+
366+
key, value = s.next()
367+
self.assertEqual("bytes_data", key)
368+
self.assertEqual(value, "bytes")
369+
370+
key, value = s.first()
371+
self.assertEqual("array_data", key)
372+
self.assertEqual(value, "array")
373+
374+
self.assertEqual(s["foo"], "str")
375+
self.assertEqual(s["bytes_data"], "bytes")
376+
self.assertEqual(s["bytearray_data"], "bytearray")
377+
self.assertEqual(s["array_data"], "array")
379378

380379
def test_custom_incomplete_serializer_and_deserializer_bsd_db_shelf(self):
381380
berkeleydb = import_helper.import_module("berkeleydb")

0 commit comments

Comments
 (0)