Fix crash when transferring internal pytest warnings from workers to the master node
Fix #214
This commit is contained in:
1
changelog/214.bugfix
Normal file
1
changelog/214.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Fix crash when transferring internal pytest warnings from workers to the master node.
|
||||
@@ -340,18 +340,28 @@ class TestTerminalReporting:
|
||||
])
|
||||
|
||||
@pytest.mark.parametrize('n', ['-n0', '-n1'])
|
||||
def test_logwarning(self, testdir, n):
|
||||
@pytest.mark.parametrize('warn_type', ['pytest', 'builtin'])
|
||||
def test_logwarning(self, testdir, n, warn_type):
|
||||
from pkg_resources import parse_version
|
||||
if parse_version(pytest.__version__) < parse_version('3.1'):
|
||||
pytest.skip('pytest warnings requires >= 3.1')
|
||||
|
||||
if warn_type == 'builtin':
|
||||
warn_code = """warnings.warn(UserWarning('this is a warning'))"""
|
||||
elif warn_type == 'pytest':
|
||||
warn_code = """request.config.warn('', 'this is a warning',
|
||||
fslocation=py.path.local())"""
|
||||
else:
|
||||
assert False
|
||||
testdir.makepyfile("""
|
||||
import warnings
|
||||
def test_func():
|
||||
warnings.warn('this is a warning')
|
||||
""")
|
||||
import warnings, py
|
||||
def test_func(request):
|
||||
{warn_code}
|
||||
""".format(warn_code=warn_code))
|
||||
result = testdir.runpytest(n)
|
||||
result.stdout.fnmatch_lines([
|
||||
"*this is a warning*",
|
||||
"*1 passed, 1 warnings*",
|
||||
])
|
||||
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ class SlaveInteractor:
|
||||
|
||||
def pytest_logwarning(self, message, code, nodeid, fslocation):
|
||||
self.sendevent("logwarning", message=message, code=code, nodeid=nodeid,
|
||||
fslocation=fslocation)
|
||||
fslocation=str(fslocation))
|
||||
|
||||
|
||||
def serialize_report(rep):
|
||||
|
||||
Reference in New Issue
Block a user