]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
bump pytest to 9; add pyv to file template; use = for all custom args
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 15 Nov 2025 16:46:35 +0000 (11:46 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 15 Nov 2025 18:16:42 +0000 (13:16 -0500)
adding "test/" to pytest doesnt work because then we can't indicate
a specific set of test files.  use = for all sqlalchemy-custom
parameters instead to avoid [1]

[1] https://github.com/pytest-dev/pytest/issues/13913

Change-Id: I9eb5bbfac734fcb145fcf3ae58fcc55df6bb6e71

noxfile.py
pyproject.toml
tools/toxnox.py

index 48c6953d09470f5d87452bab5a5ccbfd92b9adc4..2752e8b5fbdaca210ba96491713fbbd667e383fe 100644 (file)
@@ -16,7 +16,6 @@ if True:
     sys.path.insert(0, ".")
     from tools.toxnox import tox_parameters
     from tools.toxnox import apply_pytest_opts
-    from tools.toxnox import OUR_PYTHON
 
 
 SQLA_REPO = os.environ.get(
@@ -65,7 +64,6 @@ def filter_sqla(
 )
 def tests(
     session: nox.Session,
-    python: str,
     sqlalchemy: str,
     database: str,
     backendonly: str,
@@ -76,7 +74,6 @@ def tests(
         session,
         sqlalchemy,
         database,
-        python=python,
         backendonly=backendonly == "backendonly",
     )
 
@@ -94,7 +91,6 @@ def _tests(
     sqlalchemy: str,
     database: str,
     *,
-    python: str = OUR_PYTHON,
     coverage: bool = False,
     backendonly: bool = False,
 ) -> None:
@@ -136,21 +132,24 @@ def _tests(
 
     cmd.extend(os.environ.get("TOX_WORKERS", "-n4").split())
 
+    # for all sqlalchemy-custom options, use equals sign so that we avoid
+    # https://github.com/pytest-dev/pytest/issues/13913
+
     match database:
         case "sqlite":
-            cmd.extend(os.environ.get("TOX_SQLITE", "--db sqlite").split())
+            cmd.extend(os.environ.get("TOX_SQLITE", "--db=sqlite").split())
         case "postgresql":
             session.install(
                 *nox.project.dependency_groups(pyproject, "tests_postgresql")
             )
             cmd.extend(
-                os.environ.get("TOX_POSTGRESQL", "--db postgresql").split()
+                os.environ.get("TOX_POSTGRESQL", "--db=postgresql").split()
             )
         case "mysql":
             session.install(
                 *nox.project.dependency_groups(pyproject, "tests_mysql")
             )
-            cmd.extend(os.environ.get("TOX_MYSQL", "--db mysql").split())
+            cmd.extend(os.environ.get("TOX_MYSQL", "--db=mysql").split())
         case "oracle":
             # we'd like to use oracledb but SQLAlchemy 1.4 does not have
             # oracledb support...
@@ -161,14 +160,14 @@ def _tests(
                 session.env["ORACLE_HOME"] = os.environ.get("ORACLE_HOME")
             if "NLS_LANG" in os.environ:
                 session.env["NLS_LANG"] = os.environ.get("NLS_LANG")
-            cmd.extend(os.environ.get("TOX_ORACLE", "--db oracle").split())
-            cmd.extend("--write-idents db_idents.txt".split())
+            cmd.extend(os.environ.get("TOX_ORACLE", "--db=oracle").split())
+            cmd.append("--write-idents=db_idents.txt")
         case "mssql":
             session.install(
                 *nox.project.dependency_groups(pyproject, "tests_mssql")
             )
-            cmd.extend(os.environ.get("TOX_MSSQL", "--db mssql").split())
-            cmd.extend("--write-idents db_idents.txt".split())
+            cmd.extend(os.environ.get("TOX_MSSQL", "--db=mssql").split())
+            cmd.append("--write-idents=db_idents.txt")
 
     if backendonly:
         cmd.append("--backend-only")
index c01ce2f261792b59b8cd4d5d829dc1845cbd881e..9e8f81b9a5c67b336e2979c6af96e14f604a6965 100644 (file)
@@ -52,7 +52,7 @@ alembic = "alembic.config:main"
 
 [dependency-groups]
 tests = [
-    "pytest>8,<8.4",
+    "pytest>8,<10",
     "pytest-xdist",
     "black==25.1.0",  # for test_post_write.py
     "tzdata",
@@ -83,7 +83,7 @@ lint = [
 mypy = [
     "mypy>=1.16.0",
     "nox",  # because we check noxfile.py
-    "pytest>8,<8.4",  # alembic/testing imports pytest
+    "pytest>8,<10",  # alembic/testing imports pytest
 ]
 
 [tool.coverage.paths]
index 64bd298df570af75d637da3efdfe78b85d7bc3aa..295627a49c638dbc753c4c155f2a6a3f5b1b155d 100644 (file)
@@ -216,6 +216,10 @@ def apply_pytest_opts(
 ) -> list[str]:
     posargs, opts = extract_opts(session.posargs, "generate-junit")
 
+    if session.python and isinstance(session.python, str):
+        python_token = session.python.replace(".", "")
+        tokens.insert(0, python_token)
+
     file_suffix = "-".join(t for t in tokens if not t.startswith("_"))
 
     if coverage: