tests: use pyflakes as a tool, not a python module
authorPierre-Yves David <pierre-yves.david@octobus.net>
Wed, 23 Oct 2024 16:14:13 +0200
changeset 52087 43602c675b4f
parent 52086 73cf8b56c2f5
child 52088 61557734c0ae
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.
tests/hghave.py
tests/test-check-pyflakes.t
--- 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)