tests: use pyflakes as a tool, not a python module
The usage of pyflakes as a Python module was introduced in e397c6d74652, to work
around issue between Python 2 and Python 3. This issues are long behind us now
and we can get beck to using pyflakes as a tool, giving us more flexibility
about how we install it.
The `hghave` requirements is modified to check that we have a tool available,
instead of a python module.
--- a/tests/hghave.py Tue Oct 22 15:50:47 2024 +0200
+++ b/tests/hghave.py Wed Oct 23 16:14:13 2024 +0200
@@ -609,14 +609,7 @@
@check("pyflakes", "Pyflakes python linter")
def has_pyflakes():
- try:
- import pyflakes
-
- pyflakes.__version__
- except ImportError:
- return False
- else:
- return True
+ return matchoutput("pyflakes --version", br"^\d+\.\d+\.\d+\b", True)
@check("pylint", "Pylint python linter")
--- a/tests/test-check-pyflakes.t Tue Oct 22 15:50:47 2024 +0200
+++ b/tests/test-check-pyflakes.t Wed Oct 23 16:14:13 2024 +0200
@@ -8,7 +8,7 @@
$ cat > test.py <<EOF
> print(undefinedname)
> EOF
- $ "$PYTHON" -m pyflakes test.py 2>/dev/null | "$TESTDIR/filterpyflakes.py"
+ $ pyflakes test.py 2>/dev/null | "$TESTDIR/filterpyflakes.py"
test.py:1:* undefined name 'undefinedname' (glob)
$ cd "`dirname "$TESTDIR"`"
@@ -18,7 +18,7 @@
> -X contrib/python-zstandard \
> -X mercurial/thirdparty \
> 2>/dev/null \
- > | xargs "$PYTHON" -m pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
+ > | xargs pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
contrib/perf.py:*:* undefined name 'xrange' (glob) (?)
mercurial/pycompat.py:*:* 'codecs' imported but unused (glob)
mercurial/pycompat.py:*:* 'concurrent.futures' imported but unused (glob)