sqlalchemy.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:ormeasy 作者: spoqa 项目源码 文件源码
def test_connection(
    ctx: object, metadata: MetaData, engine: Engine,
    real_transaction: bool=False
) -> typing.Generator:
    """Joining a SQLAlchemy session into an external transaction for test suit.

    .. seealso::

       Documentation of the SQLAlchemy session used in test suites.
          <http://docs.sqlalchemy.org/en/latest/orm/session_transaction.html#joining-a-session-into-an-external-transaction-such-as-for-test-suites>

    """  # noqa
    if real_transaction:
        metadata.create_all(engine)
        try:
            yield engine
        finally:
            metadata.drop_all(engine, checkfirst=True)
        return
    connection = engine.connect()
    try:
        metadata.drop_all(connection, checkfirst=True)
        transaction = connection.begin()
        try:
            metadata.create_all(bind=connection)
            ctx._test_fx_connection = connection
            try:
                yield connection
            finally:
                del ctx._test_fx_connection
        finally:
            transaction.rollback()
    finally:
        connection.close()
    engine.dispose()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号