]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Merge "Skip mypy plugin tests if incompatible or missing" into main
authorFederico Caselli <cfederico87@gmail.com>
Thu, 30 Jan 2025 20:39:34 +0000 (20:39 +0000)
committerFederico Caselli <cfederico87@gmail.com>
Thu, 30 Jan 2025 20:40:13 +0000 (21:40 +0100)
(cherry picked from commit 5822319e779afd26c8edff276c837491c2c10584)

test/ext/mypy/test_mypy_plugin_py3k.py

index e1aa1f9655120706e8d5b4871d2fb530dca7b68f..1d75137a0429a96cf5ae43ff10d3722ec5a62f4a 100644 (file)
@@ -2,6 +2,13 @@ import os
 import pathlib
 import shutil
 
+try:
+    from mypy.version import __version__ as _mypy_version_str
+except ImportError:
+    _mypy_version = None
+else:
+    _mypy_version = tuple(int(x) for x in _mypy_version_str.split("."))
+
 from sqlalchemy import testing
 from sqlalchemy.testing import eq_
 from sqlalchemy.testing import fixtures
@@ -24,7 +31,15 @@ def _incremental_dirs():
     return files
 
 
+def _mypy_missing_or_incompatible():
+    return not _mypy_version or _mypy_version > (1, 10, 1)
+
+
 class MypyPluginTest(fixtures.MypyTest):
+    @testing.skip_if(
+        _mypy_missing_or_incompatible,
+        "Mypy must be present and compatible (<= 1.10.1)",
+    )
     @testing.combinations(
         *[
             (pathlib.Path(pathname).name, pathname)
@@ -75,6 +90,10 @@ class MypyPluginTest(fixtures.MypyTest):
                 % (patchfile, result[0]),
             )
 
+    @testing.skip_if(
+        _mypy_missing_or_incompatible,
+        "Mypy must be present and compatible (<= 1.10.1)",
+    )
     @testing.combinations(
         *(
             (os.path.basename(path), path, True)