SqlAlchemy для сложной выборки данных. Нужно написать тесты для этой части (написанной с использованием SqlAlchemy), но столкнулся с проблемой:
Если, в setUp например, наполнять базу данными с помощью Django ORM, то алхимия эти данные видеть не будет (из-за изоляции). Да, я знаю что для этого случая придумали TransactionTestCase с которым все начинает работать как нужно, но он выполняется мучительно долго, чего хотелось бы избежать.
Также понимаю что можно написать эти тесты без использования Django ORM, тогда TestCase будет работать, но этого делать тоже не хочется, так как в таком случае нельзя будет использовать миксины написанные для заполнения БД тестовыми данными (они используют Django ORM).
Можно ли каким-то образом таки использовать Django ORM для создания тестовых данных, чтобы алхимия эти данные видела? Возможно алхимии нужно как-то подсунуть конекшн джанги к БД? Спасибо.
я не знаю ответа) но я лишь посоветовал бы запускать всё в оперативке и параллельно
@dantyan извини за наглость, может подскажешь?
Оставлю тут, вдруг кому-то тоже будет полезно: Решается с помощью пакета https://github.com/Deepwalker/aldjemy и реюза конекшена джанго в алхимии: from aldjemy.core import get_engine from sqlalchemy.sql import select engine = get_engine() user = UserModel.sa.table query = select([ user.c.id, user.c.name]) connection = engine.connect() result = connection.execute(query) Если работать с алхимией таким способом, тогда можно обойтись без TransactionTestCase при тестировании
Обсуждают сегодня