Merge pull request #194 from nicoddemus/error-handler
Fix internal handling in process_from_remote
This commit is contained in:
2
changelog/175.bugfix
Normal file
2
changelog/175.bugfix
Normal file
@@ -0,0 +1,2 @@
|
||||
Fix error internal error handling during event loop in the master node. This bug would shadow the original errors
|
||||
making extremely hard/impossible for users to diagnose the problem properly.
|
||||
@@ -29,9 +29,9 @@ class EventCall:
|
||||
class SlaveSetup:
|
||||
use_callback = False
|
||||
|
||||
def __init__(self, request):
|
||||
self.testdir = request.getfuncargvalue("testdir")
|
||||
def __init__(self, request, testdir):
|
||||
self.request = request
|
||||
self.testdir = testdir
|
||||
self.events = queue.Queue()
|
||||
|
||||
def setup(self, ):
|
||||
@@ -65,8 +65,8 @@ class SlaveSetup:
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def slave(request):
|
||||
return SlaveSetup(request)
|
||||
def slave(request, testdir):
|
||||
return SlaveSetup(request, testdir)
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason='#59')
|
||||
@@ -319,6 +319,15 @@ class TestSlaveInteractor:
|
||||
("pytest_collectreport", "report.collector.fspath == bbb"),
|
||||
])
|
||||
|
||||
def test_process_from_remote_error_handling(self, slave, capsys):
|
||||
slave.use_callback = True
|
||||
slave.setup()
|
||||
slave.slp.process_from_remote(('<nonono>', ()))
|
||||
out, err = capsys.readouterr()
|
||||
assert 'INTERNALERROR> ValueError: unknown event: <nonono>' in out
|
||||
ev = slave.popevent()
|
||||
assert ev.name == "errordown"
|
||||
|
||||
|
||||
def test_remote_env_vars(testdir):
|
||||
testdir.makepyfile('''
|
||||
|
||||
@@ -323,7 +323,9 @@ class SlaveController(object):
|
||||
except:
|
||||
excinfo = py.code.ExceptionInfo()
|
||||
py.builtin.print_("!" * 20, excinfo)
|
||||
self.config.pluginmanager.notify_exception(excinfo)
|
||||
self.config.notify_exception(excinfo)
|
||||
self.shutdown()
|
||||
self.notify_inproc("errordown", node=self, error=excinfo)
|
||||
|
||||
|
||||
def unserialize_report(name, reportdict):
|
||||
|
||||
Reference in New Issue
Block a user