sqlalchemy pytest fixtures
The benefits for these are they can:
* makes writing sql tests easy, fast, and robust.
* Run in parallel, in separate schemas per connection.
* Only create the tables once for each pytest session.
Example:
>>> def test_bla(session):
from bla.models import Bla
bla = Bla(name="hell")
assert bla.name == 'hell'
session.add(bla)
session.commit()
Here you can see the nesting of transactions and db code as it happens.
Creates an engine per pytest.session. Creates a connection per pytest.session. transaction create unique schema for these tests create tables nested transaction sqlalchemy.session user test code.