Fix `test_popen_default_stdin_stderr_and_stdin_None` when run with `-s`

This commit is contained in:
Daniel Hahler 2020-04-06 08:30:56 +02:00
parent cb06bc7d6e
commit fc645412aa
1 changed files with 21 additions and 10 deletions

View File

@ -679,19 +679,30 @@ def test_popen_default_stdin_stderr_and_stdin_None(testdir) -> None:
# stdout, stderr default to pipes, # stdout, stderr default to pipes,
# stdin can be None to not close the pipe, avoiding # stdin can be None to not close the pipe, avoiding
# "ValueError: flush of closed file" with `communicate()`. # "ValueError: flush of closed file" with `communicate()`.
#
# Wraps the test to not make it hang when run with "-s".
p1 = testdir.makepyfile( p1 = testdir.makepyfile(
""" '''
import sys import sys
print(sys.stdin.read()) # empty
print('stdout') def test_inner(testdir):
sys.stderr.write('stderr') p1 = testdir.makepyfile(
""" """
import sys
print(sys.stdin.read()) # empty
print('stdout')
sys.stderr.write('stderr')
"""
)
proc = testdir.popen([sys.executable, str(p1)], stdin=None)
stdout, stderr = proc.communicate(b"ignored")
assert stdout.splitlines() == [b"", b"stdout"]
assert stderr.splitlines() == [b"stderr"]
assert proc.returncode == 0
'''
) )
proc = testdir.popen([sys.executable, str(p1)], stdin=None) result = testdir.runpytest("-p", "pytester", str(p1))
stdout, stderr = proc.communicate(b"ignored") assert result.ret == 0
assert stdout.splitlines() == [b"", b"stdout"]
assert stderr.splitlines() == [b"stderr"]
assert proc.returncode == 0
def test_spawn_uses_tmphome(testdir) -> None: def test_spawn_uses_tmphome(testdir) -> None: