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.
Fixes #53 Also fixes extra savepoints from #45
_connection_for_bind
caches notbind
directly butconn
andconn.engine
https://github.com/sqlalchemy/sqlalchemy/blob/rel_1_3_24/lib/sqlalchemy/orm/session.py#L453because we're mocking
session.bind
with MagicMock it never gets into the_connections
(conn.engine
is an actualEngine
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.