Использование транзакций с базой данных SQLALCHEMY 2.0 к модулям PytEST через PostgresPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование транзакций с базой данных SQLALCHEMY 2.0 к модулям PytEST через Postgres

Сообщение Anonymous »

Я работаю, чтобы перенести более старую кодовую базу с SQLalchemy 1,3 до 2.0. Я успешно перешел на 1,4, но у меня возникают проблемы с набором тестирования. Тесты используют Postgres SavePoints и MonkeApatching Session.commit => session.flush , чтобы добавить два вложенных слоя изоляции:

Тесты на корне. Тем не менее, находятся в вложенных транзакциях с некоторыми обезболенными по обезболиванию, которые предотвращает закрытие внешней транзакции (FWIW Package_Session Логика в основном идентична сессии на уровне корня , за исключением обезьянного матча):
@pytest.fixture(scope="package")
def package_session(test_engine: Engine, monkeypatch_package) -> Session:
# Create a nested transaction that includes standard module data
connection = test_engine.connect()
transaction = connection.begin()
session = Session(bind=connection)
# Overwrite commits with flushes so that we can query stuff, but it's in the same transaction
monkeypatch_package.setattr(session, "commit", session.flush)
# Create our data that is shared by the tests in this module
_create_data_for_test(session)

try:
yield session
finally:
transaction.rollback()
connection.close()

@pytest.fixture(scope="function")
def session(package_session):
"""Return a nested transaction on the outer session, to prevent rolling back shared data"""
package_session.begin_nested()
try:
yield package_session
finally:
package_session.rollback()
< /code>
< /li>
< /ul>
в рамках Sqlalchemy 1.4 Это работает, но при обновлении до 2.0, тестовый набор усеян ошибками по поводу пропущенных общих данных (без низкоуровневых ошибок Sqlalchem Подумал, что я спрошу: разве этот шаблон просто невозможна в 2.0? Я мог бы заполнить общие данные в сессии «Функция», если бы мне пришлось (просто замедлите тестовый набор вниз), но я подумал, что спрошу, смогу ли кто -нибудь заметить что -то очевидное, что я делаю не так, так как мне понравился шаблон ниже 1,3/1,4.

Подробнее здесь: https://stackoverflow.com/questions/797 ... via-postgr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Использование транзакций с базой данных SQLALCHEMY 2.0 к модулям PytEST через Postgres
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как я могу проверить соединение механизма SQLAlchemy с внешней базой данных в pytest с целью проверки проверки соединени
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip против @pytest.mark.xfail в Pytest
    Anonymous » » в форуме Python
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip против @pytest.mark.xfail в Pytest
    Anonymous » » в форуме Python
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip vs @pytest.mark.xfail в pytest
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»