Skip to content

Commit 963a9ee

Browse files
committed
Add a test case.
1 parent 77d117c commit 963a9ee

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

Lib/test/datetimetester.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3651,6 +3651,35 @@ def test_repr_subclass(self):
36513651
td = SubclassDatetime(2010, 10, 2, second=3)
36523652
self.assertEqual(repr(td), "SubclassDatetime(2010, 10, 2, 0, 0, 3)")
36533653

3654+
@support.cpython_only
3655+
def test_concurrent_initialization(self):
3656+
try:
3657+
from concurrent.futures import InterpreterPoolExecutor as _
3658+
except ImportError:
3659+
self.skipTest("requires subinterpreters")
3660+
3661+
try:
3662+
import _datetime as _
3663+
except ImportError:
3664+
self.skipTest("requires C implementation of datetime")
3665+
3666+
# Run in a subprocess to ensure we get a clean version of _datetime
3667+
script = """if True:
3668+
from concurrent.futures import InterpreterPoolExecutor
3669+
3670+
def func():
3671+
import _datetime
3672+
print('a', end='')
3673+
3674+
with InterpreterPoolExecutor() as executor:
3675+
for _ in range(8):
3676+
executor.submit(func)
3677+
"""
3678+
rc, out, err = script_helper.assert_python_ok("-c", script)
3679+
self.assertEqual(rc, 0)
3680+
self.assertEqual(out, b"a" * 8)
3681+
self.assertEqual(err, b"")
3682+
36543683

36553684
class TestSubclassDateTime(TestDateTime):
36563685
theclass = SubclassDatetime

0 commit comments

Comments
 (0)