setuponly: remove printing out/err from capman
This commit is contained in:
parent
2e11ea6108
commit
e05b33ed16
1
AUTHORS
1
AUTHORS
|
@ -267,5 +267,6 @@ Wouter van Ackooy
|
|||
Xixi Zhao
|
||||
Xuan Luong
|
||||
Xuecong Liao
|
||||
Yoav Caspi
|
||||
Zac Hatfield-Dodds
|
||||
Zoltán Máté
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Fix crash with ``KeyboardInterrupt`` during ``--setup-show``.
|
|
@ -1,5 +1,3 @@
|
|||
import sys
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
|
@ -51,7 +49,6 @@ def _show_fixture_action(fixturedef, msg):
|
|||
capman = config.pluginmanager.getplugin("capturemanager")
|
||||
if capman:
|
||||
capman.suspend_global_capture()
|
||||
out, err = capman.read_global_capture()
|
||||
|
||||
tw = config.get_terminal_writer()
|
||||
tw.line()
|
||||
|
@ -74,8 +71,6 @@ def _show_fixture_action(fixturedef, msg):
|
|||
|
||||
if capman:
|
||||
capman.resume_global_capture()
|
||||
sys.stdout.write(out)
|
||||
sys.stderr.write(err)
|
||||
|
||||
|
||||
@pytest.hookimpl(tryfirst=True)
|
||||
|
|
|
@ -267,3 +267,39 @@ def test_show_fixtures_and_execute_test(testdir):
|
|||
result.stdout.fnmatch_lines(
|
||||
["*SETUP F arg*", "*test_arg (fixtures used: arg)F*", "*TEARDOWN F arg*"]
|
||||
)
|
||||
|
||||
|
||||
def test_setup_show_with_KeyboardInterrupt_in_test(testdir):
|
||||
""" Verifies that setups are shown and tests are executed even if there was a KeyboardInterrupt in a test. """
|
||||
p = testdir.makepyfile(
|
||||
"""
|
||||
import pytest
|
||||
@pytest.fixture
|
||||
def arg():
|
||||
assert True
|
||||
def test_arg(arg):
|
||||
raise KeyboardInterrupt()
|
||||
"""
|
||||
)
|
||||
result = testdir.runpytest("--setup-show", p, no_reraise_ctrlc=True)
|
||||
assert result.ret == 2
|
||||
result.stdout.fnmatch_lines(
|
||||
["*SETUP F arg*", "*test_arg (fixtures used: arg)*", "*TEARDOWN F arg*"]
|
||||
)
|
||||
|
||||
|
||||
def test_setup_show_with_KeyboardInterrupt_in_fixture(testdir):
|
||||
""" Verifies that setups are shown and tests are executed even if there was a KeyboardInterrupt in a fixture. """
|
||||
p = testdir.makepyfile(
|
||||
"""
|
||||
import pytest
|
||||
@pytest.fixture
|
||||
def arg():
|
||||
raise KeyboardInterrupt()
|
||||
def test_arg(arg):
|
||||
assert True
|
||||
"""
|
||||
)
|
||||
result = testdir.runpytest("--setup-show", p, no_reraise_ctrlc=True)
|
||||
assert result.ret == 2
|
||||
result.stdout.fnmatch_lines(["*SETUP F arg*", "*KeyboardInterrupt*"])
|
||||
|
|
Loading…
Reference in New Issue