# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@octobus.net>
# Date 1729692853 -7200
#      Wed Oct 23 16:14:13 2024 +0200
# Node ID 43602c675b4f3dffe92217c2386c0d57347ba120
# Parent  73cf8b56c2f580b5fa91f3231e451965d30403df
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.

diff --git a/tests/hghave.py b/tests/hghave.py
--- a/tests/hghave.py
+++ b/tests/hghave.py
@@ -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")
diff --git a/tests/test-check-pyflakes.t b/tests/test-check-pyflakes.t
--- a/tests/test-check-pyflakes.t
+++ b/tests/test-check-pyflakes.t
@@ -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)