diff --git a/src/xdist/remote.py b/src/xdist/remote.py index 160b042a..416864a2 100644 --- a/src/xdist/remote.py +++ b/src/xdist/remote.py @@ -249,7 +249,7 @@ def remote_initconfig(option_dict, args): return Config.fromdictargs(option_dict, args) -def setup_config(config, basetemp): +def setup_config(config): config.option.loadgroup = config.getvalue("dist") == "loadgroup" config.option.looponfail = False config.option.usepdb = False @@ -257,7 +257,7 @@ def setup_config(config, basetemp): config.option.distload = False config.option.numprocesses = None config.option.maxprocesses = None - config.option.basetemp = basetemp + if __name__ == "__channelexec__": @@ -279,11 +279,12 @@ def setup_config(config, basetemp): if hasattr(Config, "InvocationParams"): config = _prepareconfig(args, None) + config.option.__dict__.update(option_dict) else: config = remote_initconfig(option_dict, args) config.args = args - setup_config(config, option_dict.get("basetemp")) + setup_config(config) config._parser.prog = os.path.basename(workerinput["mainargv"][0]) config.workerinput = workerinput # type: ignore[attr-defined] config.workeroutput = {} # type: ignore[attr-defined] diff --git a/src/xdist/workermanage.py b/src/xdist/workermanage.py index 8d291d46..7574fcb7 100644 --- a/src/xdist/workermanage.py +++ b/src/xdist/workermanage.py @@ -246,12 +246,11 @@ def setup(self): spec = self.gateway.spec if hasattr(self.config, "invocation_params"): args = [str(x) for x in self.config.invocation_params.args or ()] - option_dict = {} else: args = self.config.args - option_dict = vars(self.config.option) if not spec.popen or spec.chdir: args = make_reltoroot(self.nodemanager.roots, args) + option_dict = vars(self.config.option) if spec.popen: name = "popen-%s" % self.gateway.id if hasattr(self.config, "_tmp_path_factory"):