-
Notifications
You must be signed in to change notification settings - Fork 159
/
Copy pathtest_subprocess.py
35 lines (28 loc) · 1.08 KB
/
test_subprocess.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"""Tests for using subprocesses in tests."""
import sys
import asyncio
import asyncio.subprocess
import pytest
if sys.platform == 'win32':
# The default asyncio event loop implementation on Windows does not
# support subprocesses. Subprocesses are available for Windows if a
# ProactorEventLoop is used.
@pytest.yield_fixture()
def event_loop():
loop = asyncio.ProactorEventLoop()
yield loop
loop.close()
@pytest.mark.asyncio(forbid_global_loop=False)
async def test_subprocess(event_loop):
"""Starting a subprocess should be possible."""
proc = await asyncio.subprocess.create_subprocess_exec(
sys.executable, '--version', stdout=asyncio.subprocess.PIPE,
loop=event_loop)
await proc.communicate()
@pytest.mark.asyncio(forbid_global_loop=True)
async def test_subprocess_forbid(event_loop):
"""Starting a subprocess should be possible."""
proc = await asyncio.subprocess.create_subprocess_exec(
sys.executable, '--version', stdout=asyncio.subprocess.PIPE,
loop=event_loop)
await proc.communicate()