Part 2a. Make a pytest-coupled-detector
pytest
plugin.
So that we could invoke it as a long sequence of failing tests:
pytest -findcoupled testmodule1::testa testmodule1::testb testmodule1::testc testmodule2::testa testmodule2::testb testmodule2::testc testmodule3::testa testmodule3::testb testmodule3::testc
or most likely it’d be just the test modules:
pytest -findcoupled testmodule1 testmodule2 testmodule3
and it’d split out:
testmodule1::testa testmodule2::testa testmodule3::testc
We don’t need to wait to figure out an efficient algorithm for this part of the project to start. The implementation of this part can be started on right away.
Use the brute-force “remove one item at a time and retry” algorithm to start with. then once Part 1a and optionally Part 1b are completed then those can be integrated into Part 2a.
It should be probably be relatively easy to create this pytest plugin by mimicking some existing plugins that do somewhat similar things.