pytest-dev / pytest-dev/pytest-xdist

Allow other plugins to use xdist's channels for communication

Open
#886 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.9k
Forks
287
Avg merge
9h 30m
Merged PRs (30d)
2

Description

rerunfailures plugin uses its own sockets for communication between master and worker nodes. Because of hardcoded localhost I assume it won't work in an actual distributed setup.

If I'm not mistaken, I've seen at least one more plugin doing something similar, but can't find it right now.

Could xdist provide some interface for other plugins to perform communication?

Currently my guess is that some form of "execute this function on the master node (and optionally get the result)" should cover most cases. At least, it will be enough for rerunfailures.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the communication code in pytest_rerunfailures.py around lines 433-505 and compare it with xdist's existing communication mechanisms. Determine what plugin-facing interface is needed for master-to-worker communication and whether it can return results. Done means the requested interface is defined clearly enough for plugins such as rerunfailures to avoid their own localhost sockets in distributed setups.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.