Compare commits

...

6 Commits

Author SHA1 Message Date
Bruno Oliveira
469c8c50d0 Prepare release 1.19.1 2017-08-10 07:17:59 -03:00
Ronny Pfannschmidt
79f1b6dab2 Merge pull request #215 from nicoddemus/logwarning-py-path
Fix crash when transferring internal pytest warnings from workers to the master node
2017-08-10 08:57:21 +02:00
Ronny Pfannschmidt
75e61d86b7 Merge pull request #213 from messa/patch-1
Fix reprcrash check in unserialize_report()
2017-08-10 08:55:51 +02:00
Bruno Oliveira
20a1b9ef11 Fix crash when transferring internal pytest warnings from workers to the master node
Fix #214
2017-08-09 17:55:16 -03:00
Bruno Oliveira
a54f531701 Merge pull request #212 from nicoddemus/release-1.19.0
Prepare release 1.19.0
2017-08-09 12:44:59 -03:00
Petr Messner
4389843dcb Fix reprcrash check in unserialize_report() 2017-08-09 17:44:45 +02:00
4 changed files with 28 additions and 7 deletions

View File

@@ -1,3 +1,14 @@
pytest-xdist 1.19.1 (2017-08-10)
================================
Bug Fixes
---------
- Fix crash when transferring internal pytest warnings from workers to the
master node. (`#214 <https://github.com/pytest-dev/pytest-
xdist/issues/214>`_)
pytest-xdist 1.19.0 (2017-08-09)
================================

View File

@@ -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*",
])

View File

@@ -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):

View File

@@ -344,7 +344,7 @@ def unserialize_report(name, reportdict):
ReprTraceback
)
if reportdict['longrepr']:
if 'reprcrash' and 'reprtraceback' in reportdict['longrepr']:
if 'reprcrash' in reportdict['longrepr'] and 'reprtraceback' in reportdict['longrepr']:
reprtraceback = reportdict['longrepr']['reprtraceback']
reprcrash = reportdict['longrepr']['reprcrash']