Merge pull request #215 from nicoddemus/logwarning-py-path
Fix crash when transferring internal pytest warnings from workers to the master node
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'])
|
@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
|
from pkg_resources import parse_version
|
||||||
if parse_version(pytest.__version__) < parse_version('3.1'):
|
if parse_version(pytest.__version__) < parse_version('3.1'):
|
||||||
pytest.skip('pytest warnings requires >= 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("""
|
testdir.makepyfile("""
|
||||||
import warnings
|
import warnings, py
|
||||||
def test_func():
|
def test_func(request):
|
||||||
warnings.warn('this is a warning')
|
{warn_code}
|
||||||
""")
|
""".format(warn_code=warn_code))
|
||||||
result = testdir.runpytest(n)
|
result = testdir.runpytest(n)
|
||||||
result.stdout.fnmatch_lines([
|
result.stdout.fnmatch_lines([
|
||||||
"*this is a warning*",
|
"*this is a warning*",
|
||||||
|
"*1 passed, 1 warnings*",
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ class SlaveInteractor:
|
|||||||
|
|
||||||
def pytest_logwarning(self, message, code, nodeid, fslocation):
|
def pytest_logwarning(self, message, code, nodeid, fslocation):
|
||||||
self.sendevent("logwarning", message=message, code=code, nodeid=nodeid,
|
self.sendevent("logwarning", message=message, code=code, nodeid=nodeid,
|
||||||
fslocation=fslocation)
|
fslocation=str(fslocation))
|
||||||
|
|
||||||
|
|
||||||
def serialize_report(rep):
|
def serialize_report(rep):
|
||||||
|
|||||||
Reference in New Issue
Block a user