From 32a29138fc33c4e2b34dc4583ae4867add0a0048 Mon Sep 17 00:00:00 2001 From: Tom Boshoven Date: Wed, 11 Sep 2019 19:47:16 -0400 Subject: [PATCH] Fix issues related to running xdist with the terminal plugin disabled This fixes an issue where the pytest plugin manager returns None if a plugin is not loaded instead of raising an error. It also makes terminal optional in plugin code. --- src/xdist/dsession.py | 7 ++----- src/xdist/plugin.py | 3 ++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/xdist/dsession.py b/src/xdist/dsession.py index 5e91057..04e9f13 100644 --- a/src/xdist/dsession.py +++ b/src/xdist/dsession.py @@ -49,11 +49,8 @@ class DSession(object): self._max_worker_restart = get_default_max_worker_restart(self.config) # summary message to print at the end of the session self._summary_report = None - try: - self.terminal = config.pluginmanager.getplugin("terminalreporter") - except KeyError: - self.terminal = None - else: + self.terminal = config.pluginmanager.getplugin("terminalreporter") + if self.terminal: self.trdist = TerminalDistReporter(config) config.pluginmanager.register(self.trdist, "terminaldistreporter") diff --git a/src/xdist/plugin.py b/src/xdist/plugin.py index 9f1f7dd..4a0488e 100644 --- a/src/xdist/plugin.py +++ b/src/xdist/plugin.py @@ -170,7 +170,8 @@ def pytest_configure(config): session = DSession(config) config.pluginmanager.register(session, "dsession") tr = config.pluginmanager.getplugin("terminalreporter") - tr.showfspath = False + if tr: + tr.showfspath = False if config.getoption("boxed"): config.option.forked = True