pytest-dev / pytest-dev/pytest-randomly

Disabling entry points from dependencies

Open
#495 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
720
Forks
37
Avg merge
6h 16m
Merged PRs (30d)
4

Description

Python Version

3.8.11

pytest Version

7.1.3

Package Version

3.12.0

Description

For our package alibi detect, we've defined a pytest-randomly entry point in our setup.cfg:

[options.entry_points]
pytest_randomly.random_seeder =
    alibi_detect = alibi_detect.utils._random:set_seed

One of our dependencies (thinc), also defines an entry point:

[options.entry_points]
pytest_randomly.random_seeder =
    thinc = thinc.api:fix_random_seed

We don't need thinc's random seeder on our tests, however, it appears to be pulled in automatically and causes our tests to fail. My understanding was that pytest would only pay attention to whichever entry point was defined first, however I have tried to change the order of our pip installs to no avail. Is there a strategy to handle such a situation?

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 reproducing the conflict between the pytest_randomly.random_seeder entry points defined in alibi-detect and thinc, using the setup.cfg snippets in the report. Read how pytest-randomly discovers and applies entry points, then determine a supported way to disable or select a dependency's seeder and add coverage for that behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.