Skip to content

Commit 385ce7e

Browse files
committed
explicitly checks buffersize's type and add test_map_buffersize_type_validation
1 parent e99fd00 commit 385ce7e

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

Lib/concurrent/futures/_base.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,8 @@ def map(self, fn, *iterables, timeout=None, chunksize=1, buffersize=None):
600600
before the given timeout.
601601
Exception: If fn(*args) raises for any values.
602602
"""
603+
if buffersize is not None and not isinstance(buffersize, int):
604+
raise TypeError("buffersize must be an integer or None")
603605
if buffersize is not None and buffersize < 1:
604606
raise ValueError("buffersize must be None or > 0")
605607

Lib/test/test_concurrent_futures/executor.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,16 @@ def test_map_timeout(self):
7373

7474
self.assertEqual([None, None], results)
7575

76-
def test_map_buffersize_validation(self):
76+
def test_map_buffersize_type_validation(self):
77+
for buffersize in ("foo", 2.0):
78+
with self.subTest(buffersize=buffersize):
79+
with self.assertRaisesRegex(
80+
TypeError,
81+
"buffersize must be an integer or None",
82+
):
83+
self.executor.map(str, range(4), buffersize=buffersize)
84+
85+
def test_map_buffersize_value_validation(self):
7786
for buffersize in (0, -1):
7887
with self.subTest(buffersize=buffersize):
7988
with self.assertRaisesRegex(

0 commit comments

Comments
 (0)