меняется, если код вызван вне менеджера?
Вот у меня есть функция foo, хочу проверить, что она выполнилась в рамках транзации. Если запись в базу вызвана вне транзакции, то всё свалилось ошибкой
У тебя там подкапотная атомарная магия из серии глобалов происходит -- оно даже объект из контекстного менеджера не требует
Там под капотом в базе транзакция открывается
Сама транзакция неявная для тестируемой функции. Вроде и в контексте транзакции, но подтвердить это функция сама по себе, как отдельный юнит, не может. Никакой связи между транзакцией и кодом внутри функции нет.
а транзакцию кто начинает и заканчивается? как функция связана с транзакцией?
Я предполагал, что возможно где-то можно чекнуть контекст который был в контекстном менеджере
Никак, но код завалится, если он вне менеджера))
а почему за транзакции вообще отвечает код, который является клиентом сервиса, работающего с базой?
что? Просто пример накинул
Обсуждают сегодня