v2.4.0
Highlights
🧪 New: bundled pytest plugin
Installing sqlalchemyseed alongside pytest now registers a plugin (via a pytest11 entry point) that loads JSON/YAML/CSV fixture files into a transactionally-isolated SQLAlchemy session, rolled back after every test. You provide one engine fixture; the plugin supplies sqlalchemyseed_session and a seed factory. pytest stays a dev-only dependency — production imports never touch it. See the Testing with pytest docs.
(This feature was developed as 2.3.0 but never released; it ships here in 2.4.0.)
⬆️ Dropped Python 3.9 — minimum is now Python 3.10
Python 3.9 reached end-of-life on 2025-10-05. Dropping it lets the test tooling move to patched pytest 9.x, resolving GHSA-6w46-j5rx-g56g (the fix requires Python ≥3.10 and is unavailable for 3.9). If you're on 3.9, pin to sqlalchemyseed<2.4.
🐛 Fixes
- pytest plugin: an explicit
session.commit()inside a test is now correctly rolled back on SQLite (the recommendedenginefixture gained the standard pysqlite transaction-control listeners).
Compatibility
- Requires Python >=3.10 (was >=3.9).
- SQLAlchemy >=2.0.
Full changelog: v2.2.0...v2.4.0