]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
some tox readability improvements
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 26 Sep 2025 18:03:37 +0000 (14:03 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 26 Sep 2025 19:59:11 +0000 (15:59 -0400)
Change-Id: Iffc9a41b4a42330eb1e71704b0efdee94387af98

tox.ini

diff --git a/tox.ini b/tox.ini
index e1ade2b566dce5a8b0d06b6319e065c5100a50ef..712da788587c40acddc17cfd1059bebf4d42be24 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -12,10 +12,6 @@ extras=
      mysql: aiomysql
      mssql: aioodbc
 
-     # not greenlet, but tends to not have packaging until the py version
-     # has been fully released
-     mssql: mssql_pymssql
-
 [testenv]
 cov_args=--cov=sqlalchemy --cov-report term --cov-append --cov-report xml --exclude-tag memory-intensive --exclude-tag timing-intensive -k "not aaa_profiling"
 
@@ -47,6 +43,7 @@ extras=
      oracle: oracle
      oracle: oracle_oracledb
      mssql: mssql
+     mssql-py{38,39,310,311,312,313}: mssql_pymssql
 
 install_command=
      # TODO: I can find no way to get pip / tox / anyone to have this
@@ -114,55 +111,48 @@ setenv=
 
     WORKERS={env:TOX_WORKERS:-n4  --max-worker-restart=5}
 
+    # affect setup.py to skip or build the cython extensions.
     nocext: DISABLE_SQLALCHEMY_CEXT=1
     cext: REQUIRE_SQLALCHEMY_CEXT=1
+
     cov: COVERAGE={[testenv]cov_args}
     backendonly: PYTEST_EXCLUDES="-m backend"
+
     memusage: PYTEST_EXCLUDES="-m memory_intensive"
+    memusage: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite}
+    memusage: EXTRA_PG_DRIVERS={env:EXTRA_PG_DRIVERS:--dbdriver psycopg2}
+    memusage: WORKERS={env:TOX_WORKERS:-n2}
 
     oracle: WORKERS={env:TOX_WORKERS:-n2  --max-worker-restart=5}
     oracle: ORACLE={env:TOX_ORACLE:--db oracle}
-
     oracle: EXTRA_ORACLE_DRIVERS={env:EXTRA_ORACLE_DRIVERS:--dbdriver cx_oracle --dbdriver oracledb --dbdriver oracledb_async}
 
     sqlite: SQLITE={env:TOX_SQLITE:--db sqlite}
-    sqlite_file: SQLITE={env:TOX_SQLITE_FILE:--db sqlite_file}
-
-    py{38,39,310,311,312,313}-sqlite: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite --dbdriver pysqlite_numeric --dbdriver aiosqlite}
-    py{314}-sqlite: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite --dbdriver pysqlite_numeric}
-    sqlite-nogreenlet: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite --dbdriver pysqlite_numeric}
-
-    # note all of these would need limiting for py314 if we want tests to run until
-    # greenlet is available.   I just dont see any clean way to do this in tox without writing
-    # all the versions out every time and it's ridiculous
+    sqlite-py{38,39,310,311,312,313}: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite --dbdriver pysqlite_numeric --dbdriver aiosqlite}
+    sqlite-{py314,nogreenlet}: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite --dbdriver pysqlite_numeric}
 
+    sqlite_file: SQLITE={env:TOX_SQLITE_FILE:--db sqlite_file}
     sqlite_file: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite --dbdriver aiosqlite}
+    sqlite_file-{py314,nogreenlet}: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite}
 
     postgresql: POSTGRESQL={env:TOX_POSTGRESQL:--db postgresql}
-
     postgresql: EXTRA_PG_DRIVERS={env:EXTRA_PG_DRIVERS:--dbdriver psycopg2 --dbdriver asyncpg --dbdriver pg8000 --dbdriver psycopg --dbdriver psycopg_async}
     postgresql-nogreenlet: EXTRA_PG_DRIVERS={env:EXTRA_PG_DRIVERS:--dbdriver psycopg2 --dbdriver pg8000 --dbdriver psycopg}
 
-    # limit driver list for memusage target
-    memusage: EXTRA_SQLITE_DRIVERS={env:EXTRA_SQLITE_DRIVERS:--dbdriver sqlite}
-    memusage: EXTRA_PG_DRIVERS={env:EXTRA_PG_DRIVERS:--dbdriver psycopg2}
-    # limit workers for memusage
-    memusage: WORKERS={env:TOX_WORKERS:-n2}
-
     mysql: MYSQL={env:TOX_MYSQL:--db mysql}
     mysql: EXTRA_MYSQL_DRIVERS={env:EXTRA_MYSQL_DRIVERS:--dbdriver mysqldb --dbdriver pymysql --dbdriver asyncmy --dbdriver aiomysql --dbdriver mariadbconnector}
     mysql-nogreenlet: EXTRA_MYSQL_DRIVERS={env:EXTRA_MYSQL_DRIVERS:--dbdriver mysqldb --dbdriver pymysql --dbdriver mariadbconnector}
 
     mssql: MSSQL={env:TOX_MSSQL:--db mssql}
-
     mssql: EXTRA_MSSQL_DRIVERS={env:EXTRA_MSSQL_DRIVERS:--dbdriver pyodbc --dbdriver aioodbc --dbdriver pymssql}
-    py{314}-mssql: EXTRA_MSSQL_DRIVERS={env:EXTRA_MSSQL_DRIVERS:--dbdriver pyodbc  --dbdriver aioodbc}
-
+    mssql-py314: EXTRA_MSSQL_DRIVERS={env:EXTRA_MSSQL_DRIVERS:--dbdriver pyodbc  --dbdriver aioodbc}
     mssql-nogreenlet: EXTRA_MSSQL_DRIVERS={env:EXTRA_MSSQL_DRIVERS:--dbdriver pyodbc --dbdriver pymssql}
-    py{314}-mssql-nogreenlet: EXTRA_MSSQL_DRIVERS={env:EXTRA_MSSQL_DRIVERS:--dbdriver pyodbc}
+    mssql-py314-nogreenlet: EXTRA_MSSQL_DRIVERS={env:EXTRA_MSSQL_DRIVERS:--dbdriver pyodbc}
 
     oracle,mssql,sqlite_file: IDENTS=--write-idents db_idents.txt
 
+
+
 # tox as of 2.0 blocks all environment variables from the
 # outside, unless they are here (or in TOX_TESTENV_PASSENV,
 # wildcards OK).  Need at least these
@@ -185,9 +175,12 @@ passenv=
 
 commands=
 
-  # this line is only meaningful when usedevelop=True is enabled.  we use
-  # that flag for coverage mode.
+  # removing *.so from lib/ is only useful when usedevelop=True is enabled,
+  # otherwise the library was already installed in the tox env with or
+  # without the cython extensions built.  We use usedevelop=True for coverage
+  # mode.
   nocext: sh -c "rm -f lib/sqlalchemy/*.so"
+
   nogreenlet: pip uninstall -y greenlet
   {env:BASECOMMAND} {env:WORKERS} {env:SQLITE:} {env:EXTRA_SQLITE_DRIVERS:} {env:POSTGRESQL:} {env:EXTRA_PG_DRIVERS:} {env:MYSQL:} {env:EXTRA_MYSQL_DRIVERS:} {env:ORACLE:} {env:EXTRA_ORACLE_DRIVERS:} {env:MSSQL:} {env:EXTRA_MSSQL_DRIVERS:} {env:IDENTS:} {env:PYTEST_EXCLUDES:} {env:COVERAGE:} {posargs}
   oracle,mssql,sqlite_file: python reap_dbs.py db_idents.txt