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(
)
def tests(
session: nox.Session,
- python: str,
sqlalchemy: str,
database: str,
backendonly: str,
session,
sqlalchemy,
database,
- python=python,
backendonly=backendonly == "backendonly",
)
sqlalchemy: str,
database: str,
*,
- python: str = OUR_PYTHON,
coverage: bool = False,
backendonly: bool = False,
) -> None:
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...
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")
) -> 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: