From 10699859f2a0d5d8f671ebd7298b1253c53dbeec Mon Sep 17 00:00:00 2001 From: phnmn <32295782+phnmn@users.noreply.github.com> Date: Wed, 27 Jul 2022 19:25:24 +0300 Subject: [PATCH 1/2] pass config.option to workers --- src/xdist/workermanage.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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"): From 11703b67f8c4b59c4f2a42f24b41462bee1e1b31 Mon Sep 17 00:00:00 2001 From: phnmn <32295782+phnmn@users.noreply.github.com> Date: Thu, 28 Jul 2022 17:04:28 +0300 Subject: [PATCH 2/2] update remote worker config with option_dict --- src/xdist/remote.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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]