• [gentoo-dev] [PATCH 1/3] python-utils-r1.eclass: Do not pass `-p xdist`

    From =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?@21:1/5 to All on Sat Nov 18 18:00:01 2023
    Fix `epytest` with `EPYTEST_XDIST` not to pass a duplicate `-p xdist`
    when `xdist.plugin` is already present in `PYTEST_PLUGINS`. Otherwise,
    pytest will fail due to the plugin being loaded twice.

    Signed-off-by: Michał Górny <[email protected]>
    ---
    eclass/python-utils-r1.eclass | 10 +++++++---
    1 file changed, 7 insertions(+), 3 deletions(-)

    diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 80abe974f9df..1de4f325de33 100644
    --- a/eclass/python-utils-r1.eclass
    +++ b/eclass/python-utils-r1.eclass
    @@ -1390,10 +1390,14 @@ epytest() {
    if [[ ${EPYTEST_XDIST} ]]; then
    local jobs=${EPYTEST_JOBS:-$(makeopts_jobs)}
    if [[ ${jobs} -gt 1 ]]; then
    + if [[ ${PYTEST_PLUGINS} != *xdist.plugin* ]]; then
    + args+=(
    + # explicitly enable the plugin, in case the ebuild was
    + # using PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
    + -p xdist
    + )
    + fi
    args+=(
    - # explicitly enable the plugin, in case the ebuild was using
    - # PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
    - -p xdist
    -n "${jobs}"
    # worksteal ensures that workers don't end up idle when heavy
    # jobs are unevenly distributed
    --
    2.42.1

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?@21:1/5 to All on Sat Nov 18 18:00:01 2023
    Modify `epytest` not to pass our plethora of `-p no:*` arguments
    when `PYTEST_DISABLE_PLUGIN_AUTOLOAD` is set. This is NFC since
    the plugins wouldn't be loaded anyway.

    Signed-off-by: Michał Górny <[email protected]>
    ---
    eclass/python-utils-r1.eclass | 51 +++++++++++++++++++----------------
    1 file changed, 28 insertions(+), 23 deletions(-)

    diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 1de4f325de33..394f64a5d139 100644
    --- a/eclass/python-utils-r1.eclass
    +++ b/eclass/python-utils-r1.eclass
    @@ -1362,31 +1362,36 @@ epytest() {
    # count is more precise when we're dealing with a large number
    # of tests
    -o console_output_style=count
    - # disable the undesirable-dependency plugins by default to
    - # trigger missing argument strips. strip options that require - # them from config files. enable them explicitly via "-p ..." - # if you *really* need them.
    - -p no:cov
    - -p no:flake8
    - -p no:flakes
    - -p no:pylint
    - # sterilize pytest-markdown as it runs code snippets from all
    - # *.md files found without any warning
    - -p no:markdown
    - # pytest-sugar undoes everything that's good about pytest output
    - # and makes it hard to read logs
    - -p no:sugar
    -