Как "--keepdb" влияет на setUpTestData?

Из документации Django я вижу, что Django TestCase оборачивает тесты в два вложенных блока atomic(): один для всего класса и один для каждого теста.

Затем я вижу, что метод setUpTestData "позволяет создать начальные данные на уровне класса, один раз для всего TestCase": таким образом, речь идет о целом атомарном блоке класса.

Это означает, что флаг --keepdb не должен влиять на это поведение, поскольку этот флаг просто пропускает создание/уничтожение базы данных.

Но Я заметил, что если я запускаю тест с флагом --keepdb, то данные, которые я создаю в методе setUpTestData, сохраняются.

Я не против этого, но я хочу понять, что именно делает --keepdb, потому что я не могу понять, почему это происходит. Я пытался посмотреть непосредственно исходный код класса Django TestCase, но я не вижу никакой проверки опции --keepdb.

Почему - если я запускаю свой тест с опцией --keepdb - данные, которые я создаю в методе setUpTestData, сохраняются?

Ок, я был прав: опция --keepdb не влияет на поведение setUpTestData.

Я удалил свою тестовую базу данных, теперь я начинаю с нуля. Теперь я вижу, что все данные, которые я создаю в setUpTestData, "откатываются" после завершения TestCase, также с опцией --keepdb.

Возможно, я просто испортил свою тестовую базу данных раньше.

Вернуться на верх