5
5
from concurrent import futures
6
6
from operator import add
7
7
from test import support
8
- from test .support import Py_GIL_DISABLED
8
+ from test .support import Py_GIL_DISABLED , warnings_helper
9
9
10
10
11
11
def mul (x , y ):
@@ -43,10 +43,12 @@ class ExecutorTest:
43
43
44
44
# Executor.shutdown() and context manager usage is tested by
45
45
# ExecutorShutdownTest.
46
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
46
47
def test_submit (self ):
47
48
future = self .executor .submit (pow , 2 , 8 )
48
49
self .assertEqual (256 , future .result ())
49
50
51
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
50
52
def test_submit_keyword (self ):
51
53
future = self .executor .submit (mul , 2 , y = 8 )
52
54
self .assertEqual (16 , future .result ())
@@ -57,6 +59,7 @@ def test_submit_keyword(self):
57
59
with self .assertRaises (TypeError ):
58
60
self .executor .submit (arg = 1 )
59
61
62
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
60
63
def test_map (self ):
61
64
self .assertEqual (
62
65
list (self .executor .map (pow , range (10 ), range (10 ))),
@@ -66,13 +69,15 @@ def test_map(self):
66
69
list (self .executor .map (pow , range (10 ), range (10 ), chunksize = 3 )),
67
70
list (map (pow , range (10 ), range (10 ))))
68
71
72
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
69
73
def test_map_exception (self ):
70
74
i = self .executor .map (divmod , [1 , 1 , 1 , 1 ], [2 , 3 , 0 , 5 ])
71
75
self .assertEqual (i .__next__ (), (0 , 1 ))
72
76
self .assertEqual (i .__next__ (), (0 , 1 ))
73
77
with self .assertRaises (ZeroDivisionError ):
74
78
i .__next__ ()
75
79
80
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
76
81
@support .requires_resource ('walltime' )
77
82
def test_map_timeout (self ):
78
83
results = []
@@ -108,26 +113,30 @@ def test_map_buffersize_value_validation(self):
108
113
):
109
114
self .executor .map (str , range (4 ), buffersize = buffersize )
110
115
116
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
111
117
def test_map_buffersize (self ):
112
118
ints = range (4 )
113
119
for buffersize in (1 , 2 , len (ints ), len (ints ) * 2 ):
114
120
with self .subTest (buffersize = buffersize ):
115
121
res = self .executor .map (str , ints , buffersize = buffersize )
116
122
self .assertListEqual (list (res ), ["0" , "1" , "2" , "3" ])
117
123
124
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
118
125
def test_map_buffersize_on_multiple_iterables (self ):
119
126
ints = range (4 )
120
127
for buffersize in (1 , 2 , len (ints ), len (ints ) * 2 ):
121
128
with self .subTest (buffersize = buffersize ):
122
129
res = self .executor .map (add , ints , ints , buffersize = buffersize )
123
130
self .assertListEqual (list (res ), [0 , 2 , 4 , 6 ])
124
131
132
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
125
133
def test_map_buffersize_on_infinite_iterable (self ):
126
134
res = self .executor .map (str , itertools .count (), buffersize = 2 )
127
135
self .assertEqual (next (res , None ), "0" )
128
136
self .assertEqual (next (res , None ), "1" )
129
137
self .assertEqual (next (res , None ), "2" )
130
138
139
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
131
140
def test_map_buffersize_on_multiple_infinite_iterables (self ):
132
141
res = self .executor .map (
133
142
add ,
@@ -147,6 +156,7 @@ def test_map_buffersize_without_iterable(self):
147
156
res = self .executor .map (str , buffersize = 2 )
148
157
self .assertIsNone (next (res , None ))
149
158
159
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
150
160
def test_map_buffersize_when_buffer_is_full (self ):
151
161
ints = iter (range (4 ))
152
162
buffersize = 2
@@ -158,13 +168,15 @@ def test_map_buffersize_when_buffer_is_full(self):
158
168
msg = "should have fetched only `buffersize` elements from `ints`." ,
159
169
)
160
170
171
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
161
172
def test_shutdown_race_issue12456 (self ):
162
173
# Issue #12456: race condition at shutdown where trying to post a
163
174
# sentinel in the call queue blocks (the queue is full while processes
164
175
# have exited).
165
176
self .executor .map (str , [2 ] * (self .worker_count + 1 ))
166
177
self .executor .shutdown ()
167
178
179
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
168
180
@support .cpython_only
169
181
def test_no_stale_references (self ):
170
182
# Issue #16284: check that the executors don't unnecessarily hang onto
@@ -209,6 +221,7 @@ def test_max_workers_negative(self):
209
221
"than 0" ):
210
222
self .executor_type (max_workers = number )
211
223
224
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
212
225
def test_free_reference (self ):
213
226
# Issue #14406: Result iterator should not keep an internal
214
227
# reference to result objects.
@@ -221,6 +234,7 @@ def test_free_reference(self):
221
234
if wr () is None :
222
235
break
223
236
237
+ @warnings_helper .ignore_fork_in_thread_deprecation_warnings ()
224
238
def test_swallows_falsey_exceptions (self ):
225
239
# see gh-132063: Prevent exceptions that evaluate as falsey
226
240
# from being ignored.
0 commit comments