Почему reset_sequences=True заставляет pytest действительно сбрасывать различия в базу данных test_database?
Я запускаю свои тесты django с помощью pytest и увидел странное поведение. Чтобы выяснить, что произошло, я вставил breakpoint()
в свои тесты, а затем запустил psql'ed в мою базу данных postgres, чтобы посмотреть, в каком состоянии она находится. К моему удивлению, все таблицы базы данных были пусты, хотя при использовании MyModel.objects.all().count() выдавало около 500 (тестовых) записей.
Я просмотрел документацию и немного повозился, а затем обнаружил, что когда я изменяю
@pytest.mark.django_db
в верхней части моих тестов до
@pytest.mark.django_db(reset_sequences=True)
подсчеты, которые я вижу при использовании psql'ing в postgres, совпадают с тем, что я получаю при подсчете с помощью django orm.
Чтобы добавить путаницы, в документации фактически говорится, что reset_sequences=True
Для получения эффекта необходимо использовать вместе с transaction=True.
Почему установка reset_sequences
на True
приводит к тому, что подсчет с помощью psql имеет тот же эффект, что и подсчет с помощью django ORM?