commit:     5beaecdbd744b5166929341cd05164b201ac2dbf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 21 02:54:18 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Mon Jul 21 05:49:11 2025 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=5beaecdb

Fix `MisplacedEPyTestVar` check with no `distutils_enable_tests`

Reported by @parona-source.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Closes: https://github.com/pkgcore/pkgcheck/pull/751
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcheck/checks/python.py                      |  6 +++--
 .../MisplacedEPyTestVar-1.ebuild                   | 29 ++++++++++++++++++++++
 2 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/src/pkgcheck/checks/python.py b/src/pkgcheck/checks/python.py
index 71a25f91..281df257 100644
--- a/src/pkgcheck/checks/python.py
+++ b/src/pkgcheck/checks/python.py
@@ -441,6 +441,7 @@ class PythonCheck(Check):
     def check_epytest_vars(self, pkg):
         """Check for incorrect use of EPYTEST_* variables"""
         # TODO: do we want to check for multiple det calls? Quite unlikely.
+        det_lineno = None
         for node in pkg.global_query(bash.cmd_query):
             name = pkg.node_str(node.child_by_field_name("name"))
             if name != "distutils_enable_tests":
@@ -454,8 +455,9 @@ class PythonCheck(Check):
                     break
                 elif argument != "\\":
                     return
-            else:
-                return
+
+        if det_lineno is None:
+            return
 
         for var_name, var_node in self._get_all_global_assignments(pkg):
             # While not all variables affect distutils_enable_tests, make it

diff --git 
a/testdata/repos/python/PythonCheck/MisplacedEPyTestVar/MisplacedEPyTestVar-1.ebuild
 
b/testdata/repos/python/PythonCheck/MisplacedEPyTestVar/MisplacedEPyTestVar-1.ebuild
new file mode 100644
index 00000000..0e30f6c4
--- /dev/null
+++ 
b/testdata/repos/python/PythonCheck/MisplacedEPyTestVar/MisplacedEPyTestVar-1.ebuild
@@ -0,0 +1,29 @@
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_10 )
+
+inherit distutils-r1
+
+DESCRIPTION="Ebuild with misplaced EPYTEST vars"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+LICENSE="BSD"
+SLOT="0"
+
+EPYTEST_PLUGIN_AUTOLOAD=1
+EPYTEST_PLUGINS=( foo bar baz )
+EPYTEST_XDIST=1
+: ${EPYTEST_TIMEOUT:=180}
+
+EPYTEST_DESELECT=(
+       tests/test_foo.py::test_foo
+)
+EPYTEST_IGNORE=(
+       tests/test_bar.py
+)
+
+python_test() {
+       : ${EPYTEST_TIMEOUT:=300}
+       local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" more )
+       EPYTEST_XDIST= epytest
+}

Reply via email to