1. Не чистить сразу после каждого теста, в конце всех тестов делать чистку одной транзакцией
или
2. генерировать данные для тестов уникальные, но никогда не удалять. зачем их удалять?
1. Т.е через БД? 2. Захламляется потому что + чтобы прогнать повторно тест, нужно вернуть все в исходное положение) Система там такая что одно влияет на другое и пошло поехало
если через бд, то в твоем коде тестов должен быть реализован DB connection, через какой-нибудь db adapter, например sqlalchemy какой, для которого ты напишешь метод по удалению записей из таблиц, передав в качестве параметров ID тех записей, которые фигурировали в тестах.
если через бд, то в твоем коде тестов должен быть реализован DB connection, через какой-нибудь db adapter, например sqlalchemy какой, для которого ты напишешь метод по удалению записей из таблиц, передав в качестве параметров ID тех записей, которые фигурировали в тестах.
Ну вот так и предполагал, взять что-то типа sqlalchemy и после всего цикла просто кидать 1 запрос
1. Т.е через БД? 2. Захламляется потому что + чтобы прогнать повторно тест, нужно вернуть все в исходное положение) Система там такая что одно влияет на другое и пошло поехало
не чистить базу после тестов абсолютно нормальный подход. Чистка базы вообще скорее мейнтенанс задача и никак не должна быть "требованием" для тестов по-умолчанию
если тебе нужно перед каждым тестом чистить базу, то это значит что твои тесты не изолированы друг от друга, используют хардкод, и в принципе не могут запускаться параллельно в теории
если тебе нужно перед каждым тестом чистить базу, то это значит что твои тесты не изолированы друг от друга, используют хардкод, и в принципе не могут запускаться параллельно в теории
Ну есть такие тесты которые допустим не могут выполниться повторный раз на одном и том же (возьмём допустим какой нибудь абстрактный item)
чистка базы через бд адаптер / апи абсолютно нормальная практика, но я бы тебе предложил подумать насчет полной изоляции тестовых данных между тестами, так, чтобы чистка базы никак не влияла на результат. Потому что на проде не бывает чистки базы
Так как тесты заточены на один кейс, а при повторном запуске на том же item'е это уже считается другой кейс, вот и я и хотел таким образом перед запуском возвращать все в исходное состояние, чтобы небыло конфликтов