pytest-flask-sqlalchemy icon indicating copy to clipboard operation
pytest-flask-sqlalchemy copied to clipboard

Fix SesstionTransaction._connection_for_bind call. Fixes #53

Open cybergrind opened this issue 4 years ago • 0 comments
trafficstars

Fixes #53 Also fixes extra savepoints from #45

_connection_for_bind caches not bind directly but conn and conn.engine https://github.com/sqlalchemy/sqlalchemy/blob/rel_1_3_24/lib/sqlalchemy/orm/session.py#L453

because we're mocking session.bind with MagicMock it never gets into the _connections (conn.engine is an actual Engine instance in the end) and we're open nested transactions for every call of _connection_for_bind (#45) but also SA overwrite _connections on every call, thus we lose actual savepoint and always reset it to the most recent one. And because we always open transactions usually we rollback nothing.

cybergrind avatar Sep 18 '21 21:09 cybergrind