Merge branch 'master' into add_remote_hook

This commit is contained in:
Bruno Oliveira
2019-02-15 09:23:32 -02:00
committed by GitHub
15 changed files with 283 additions and 48 deletions

View File

@@ -2,6 +2,7 @@ from __future__ import print_function
import fnmatch
import os
import re
import sys
import threading
import py
@@ -219,6 +220,7 @@ class WorkerController(object):
"workercount": len(nodemanager.specs),
"slaveid": gateway.id,
"slavecount": len(nodemanager.specs),
"mainargv": sys.argv,
}
# TODO: deprecated name, backward compatibility only. Remove it in future
self.slaveinput = self.workerinput
@@ -248,9 +250,13 @@ class WorkerController(object):
basetemp = self.config._tmpdirhandler.getbasetemp()
option_dict["basetemp"] = str(basetemp.join(name))
self.config.hook.pytest_configure_node(node=self)
remote_module = self.config.hook.pytest_xdist_getremotemodule()
self.channel = self.gateway.remote_exec(remote_module)
self.channel.send((self.workerinput, args, option_dict))
self.channel = self.gateway.remote_exec(remote_module)
# change sys.path only for remote workers
change_sys_path = not self.gateway.spec.popen
self.channel.send((self.workerinput, args, option_dict, change_sys_path))
if self.putevent:
self.channel.setcallback(self.process_from_remote, endmarker=self.ENDMARK)
@@ -275,7 +281,7 @@ class WorkerController(object):
if not self._down:
try:
self.sendcommand("shutdown")
except IOError:
except (IOError, OSError):
pass
self._shutdown_sent = True
@@ -352,7 +358,11 @@ class WorkerController(object):
except: # noqa
from _pytest._code import ExceptionInfo
excinfo = ExceptionInfo()
# ExceptionInfo API changed in pytest 4.1
if hasattr(ExceptionInfo, "from_current"):
excinfo = ExceptionInfo.from_current()
else:
excinfo = ExceptionInfo()
print("!" * 20, excinfo)
self.config.notify_exception(excinfo)
self.shutdown()