Size: a a a

testing_in_python

2020 April 16

СС

Сказочный Сникерс in testing_in_python
ты НЕ можешь откатить транзакцию после коммита. НИКАК
источник

А

Алексей in testing_in_python
Vadim Dudin
Ну и насущный вопрос, есть ли какие то адекватные варианты отката изменений, кроме как вручную в конце теста или фикстуре возвращать как было?
пересоздание базы, пересоздание таблицы, создание тестов, не требующих откатов (ваша продакшен системы же не требует откатов? :) )
источник

СС

Сказочный Сникерс in testing_in_python
этот механизм вообще не для этого
источник

СС

Сказочный Сникерс in testing_in_python
calls to commit
источник

СС

Сказочный Сникерс in testing_in_python
а не commit
источник

СС

Сказочный Сникерс in testing_in_python
то есть твой вызов коммита тоже может отвалиться
источник

СС

Сказочный Сникерс in testing_in_python
причин - масса, от того что ты нафигачил в транзакции и заканчивая неверной изоляцией транзакций на базе
источник

VD

Vadim Dudin in testing_in_python
Сказочный Сникерс
то есть твой вызов коммита тоже может отвалиться
Теперь понял, спасибо
источник

А

Алексей in testing_in_python
Сказочный Сникерс
то есть твой вызов коммита тоже может отвалиться
не только, алхимия для экономии коммитит не когда вызван коммит, а по своим внутренним механизмам. Там эта сессия - тот еще комбайн, всегда предпочитал raw sql
источник

VD

Vadim Dudin in testing_in_python
Алексей
пересоздание базы, пересоздание таблицы, создание тестов, не требующих откатов (ваша продакшен системы же не требует откатов? :) )
Ради одной строчки пересоздавать базу? Ну такое себе решение, особенно после каждого теста.
источник

СС

Сказочный Сникерс in testing_in_python
Алексей
не только, алхимия для экономии коммитит не когда вызван коммит, а по своим внутренним механизмам. Там эта сессия - тот еще комбайн, всегда предпочитал raw sql
специфично для многопоточных приложений на алхимии, но в целом да
источник

СС

Сказочный Сникерс in testing_in_python
настроить алхимию это то еще искусство
источник

А

Алексей in testing_in_python
Vadim Dudin
Ради одной строчки пересоздавать базу? Ну такое себе решение, особенно после каждого теста.
если одна строчка - то таблицу
источник

СС

Сказочный Сникерс in testing_in_python
или просто удалить строчку
источник

СС

Сказочный Сникерс in testing_in_python
все зависит от того что у тебя за тесты и как много сущностей вв базе создает каждый
источник

СС

Сказочный Сникерс in testing_in_python
если много, то проще дамп накатывать
источник

СС

Сказочный Сникерс in testing_in_python
если нет - можно удалять по отдельности
источник

А

Алексей in testing_in_python
обычно всегда можно обойтись без таких изменений данных, которые в рамках тестового прогона надо откатывать. Если уж есть место что никак - там проще прихранить изменения и удалить потом
источник

VD

Vadim Dudin in testing_in_python
Сказочный Сникерс
или просто удалить строчку
Добавить, но да, видимо оно и правда проще будет, просто придётся дописывать действия для каждого подобного теста, по этому хотел уточнить, есть ли варианты сделать иначе.
источник

VD

Vadim Dudin in testing_in_python
Изменения небольшие, обычно удаление 1-2 строчек в одной таблице
источник