From: Mike Bayer Date: Sat, 15 Nov 2025 16:46:35 +0000 (-0500) Subject: bump pytest to 9; add pyv to file template; use = for all custom args X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bfbf3f0e34b3382939f72b6f997e035600d0c037;p=thirdparty%2Fsqlalchemy%2Falembic.git bump pytest to 9; add pyv to file template; use = for all custom args 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 --- diff --git a/noxfile.py b/noxfile.py index 48c6953d..2752e8b5 100644 --- a/noxfile.py +++ b/noxfile.py @@ -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") diff --git a/pyproject.toml b/pyproject.toml index c01ce2f2..9e8f81b9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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] diff --git a/tools/toxnox.py b/tools/toxnox.py index 64bd298d..295627a4 100644 --- a/tools/toxnox.py +++ b/tools/toxnox.py @@ -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: