Is there a way to find out which pytest-xdist gateway is running?

I found out that you can access the gateway id in the following way:

slaveinput = getattr(session.config, "slaveinput", None)

if slaveinput:
    gatewayid = slaveinput['slaveid']

Of course you need to be in a place where you can access the session.config object.


Similar to @Kanguros's answer but plugging into the pytest fixture paradigm:

You can get the worker id by [accessing] the slaveinput dictionary. Here's a fixture which makes that information available to tests and other fixtures:

@pytest.fixture
def worker_id(request):
    if hasattr(request.config, 'slaveinput'):
        return request.config.slaveinput['slaveid']
    else:
        return 'master'

This is quoted from a comment on the pytest-xdist Issues tracker/discussion (2016).