Skip to content

v2.4.0

Choose a tag to compare

@jedymatt jedymatt released this 04 Jul 15:26
· 36 commits to main since this release
8a8a29b

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 recommended engine fixture 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