From: Mike Bayer Date: Fri, 3 Oct 2025 19:12:12 +0000 (-0400) Subject: working out nox edge cases X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=HEAD;p=thirdparty%2Fsqlalchemy%2Falembic.git working out nox edge cases Change-Id: Ibba2450cb0bc18de77fcee9e58fda083ce8a7332 --- diff --git a/.github/workflows/run-on-pr.yaml b/.github/workflows/run-on-pr.yaml index 098d0e5d..f4140cef 100644 --- a/.github/workflows/run-on-pr.yaml +++ b/.github/workflows/run-on-pr.yaml @@ -25,7 +25,7 @@ jobs: os: - "ubuntu-22.04" python-version: - - "3.12" + - "3.13" sqlalchemy: - sqla14 - sqla20 diff --git a/.github/workflows/run-test.yaml b/.github/workflows/run-test.yaml index 33708edf..c8a78a8d 100644 --- a/.github/workflows/run-test.yaml +++ b/.github/workflows/run-test.yaml @@ -30,7 +30,6 @@ jobs: - "windows-latest" - "macos-latest" python-version: - - "3.9" - "3.10" - "3.11" - "3.12" @@ -43,9 +42,6 @@ jobs: # sqla14 does not support 3.13+ - sqlalchemy: sqla14 python-version: "3.13" - # sqlamain does not support 3.9 - - sqlalchemy: main - python-version: "3.9" fail-fast: false diff --git a/noxfile.py b/noxfile.py index d1dc2144..0403a805 100644 --- a/noxfile.py +++ b/noxfile.py @@ -215,11 +215,10 @@ def lint(session: nox.Session) -> None: @nox.session(name="pyoptimize") -@tox_parameters(["python"], [PYTHON_VERSIONS], base_tag="pyoptimize") def test_pyoptimize(session: nox.Session) -> None: """Run the script consumption suite against .pyo files rather than .pyc""" - session.install(*nox.project.dependency_groups(pyproject, "test")) + session.install(*nox.project.dependency_groups(pyproject, "tests")) session.install(".") session.env["PYTHONOPTIMIZE"] = "1" @@ -232,5 +231,11 @@ def test_pyoptimize(session: nox.Session) -> None: ] cmd.extend(os.environ.get("TOX_WORKERS", "-n4").split()) cmd.append("tests/test_script_consumption.py") - cmd.extend(session.posargs) + + posargs, opts = extract_opts(session.posargs, "generate-junit") + if opts.generate_junit: + cmd.extend(["--junitxml", "junit-general.xml"]) + + cmd.extend(posargs) + session.run(*cmd) diff --git a/pyproject.toml b/pyproject.toml index 2ddb1ae6..1b0d5879 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,7 +55,8 @@ alembic = "alembic.config:main" tests = [ "pytest>8,<8.4", "pytest-xdist", - "black==25.1.0" # for test_post_write.py + "black==25.1.0", # for test_post_write.py + "tzdata" ] coverage = [ diff --git a/tools/toxnox.py b/tools/toxnox.py index 09ba5260..497a689c 100644 --- a/tools/toxnox.py +++ b/tools/toxnox.py @@ -71,7 +71,7 @@ def tox_parameters( """ - PY_RE = re.compile(r"(?:python)?([234]\.\d+t?)") + PY_RE = re.compile(r"(?:python)?([234]\.\d+(t?))") def _is_py_version(token): return bool(PY_RE.match(token)) @@ -84,8 +84,15 @@ def tox_parameters( name """ + if sys.platform == "win32": + return token + m = PY_RE.match(token) - if m: + + # do this matching minimally so that it only happens for the + # free-threaded versions. on windows, the "pythonx.y" syntax doesn't + # work due to the use of the "py" tool + if m and m.group(2) == "t": return f"python{m.group(1)}" else: return token @@ -185,8 +192,7 @@ def tox_parameters( ] # for p in params: - # print(f"PARAM {'-'.join(p.args)} TAGS {p.tags}") - # breakpoint() + # print(f"PARAM {'-'.join(p.args)} TAGS {p.tags}") return nox.parametrize(names, params)