CodeVetter · Repo Unpack · Testing signals
sqlalchemy/sqlalchemy
Tests and CI were inspected, not executed; test existence is not a passing result. The inspected suite uses pytest, SQLAlchemy-specific fixtures and plugin machinery, async wrappers, and Nox environment selection. Concrete tests exercise compiler output, execution contracts, cache reuse, transactional recovery, async connections, and savepoints. Coverage observations remain bounded, and the inspected GitHub sessions use SQLite rather than establishing live coverage of every vendor integration.
- The inspected test framework is pytest with pytest-xdist; test/conftest.py adjusts the lib import path and executes the local bootstrap module to load SQLAlchemy's pytest plugin.
- test/sql/test_compiler.py asserts exact SELECT rendering and validates limit/offset coercion, including rejection of nonnumeric strings.
- test/engine/test_execute.py checks that Connection.execute rejects plain strings and that exec_driver_sql rejects malformed positional parameter collections.
- Engine execution tests check context-manager commit and rollback; CompiledCacheTest verifies that three same-shaped inserts compile once and store one cache entry.
- ORM transaction tests cover repeated post-flush work during commit, the 100-flush guard, and PendingRollbackError recovery through explicit Session.rollback.
- Async engine tests require async_dialect and cover awaited/context-managed connections, unstarted-context errors, commit, rollback, savepoints, and pool exhaustion timeouts.
- PR CI selects Python 3.14/3.15 and compiled/greenlet/pure-Python variants; the referenced github-* Nox sessions target SQLite, while separate CI jobs select mypy, pep484, and pep8.
- Verification limits are explicit: pytest excludes examples/doc/lib from recursive collection, some Nox sessions deselect timing or memory tests, profiling skips unmatched platform keys, and push CI excludes free-threaded greenlet combinations and tolerates PyPy failures.