Fix internal handling in process_from_remote

Fix #175
This commit is contained in:
Bruno Oliveira
2017-07-27 20:50:09 -03:00
parent 144b37ae4b
commit 64f8ad5469
3 changed files with 18 additions and 5 deletions

2
changelog/175.bugfix Normal file
View 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.

View File

@@ -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('''

View File

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