diff --git a/changelog/696.feature.rst b/changelog/696.feature.rst new file mode 100644 index 00000000..a947b519 --- /dev/null +++ b/changelog/696.feature.rst @@ -0,0 +1,2 @@ +Use setproctitle() to indicate current worker state if correspondent package +is available. Absent package (or any errors) just continues unchanged. diff --git a/src/xdist/remote.py b/src/xdist/remote.py index d79f0b38..0194ae02 100644 --- a/src/xdist/remote.py +++ b/src/xdist/remote.py @@ -16,6 +16,21 @@ from _pytest.config import _prepareconfig, Config +try: + from setproctitle import setproctitle +except ImportError: + + def setproctitle(title): + pass + + +def worker_title(title): + try: + setproctitle(title) + except Exception: + # changing the process name is very optional, no errors please + pass + class WorkerInteractor: def __init__(self, config, channel): @@ -85,9 +100,14 @@ def run_one_test(self, torun): else: nextitem = None + worker_title("[pytest-xdist running] %s" % item.nodeid) + start = time.time() self.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) duration = time.time() - start + + worker_title("[pytest-xdist idle]") + self.sendevent( "runtest_protocol_complete", item_index=self.item_index, duration=duration )