Как заставить pytest-django фиксировать данные в базе данных, а не в транзакции? ⇐ Python

Программы на Python
Anonymous
Как заставить pytest-django фиксировать данные в базе данных, а не в транзакции?

Сообщение Anonymous »

Существует файл conftest.py, который позволяет мне использовать мое собственное транзакционное устройство fake_user

Код: Выделить всё

@pytest.mark.django_db(transaction=True)
@pytest.fixture
def fake_user():
user = getattr(fake_user, 'user', None)
if user is None:
user_data = dict(
id=1,
is_superuser=False,
is_staff=False,
email='foo@barmail.com',
username='foobaruser',
password='passwordmaster',
date_joined=timezone.now()
)
user = User.objects.create(
**user_data
)
user.save()
# pdb.set_trace()
fake_user.user = user
yield user
Каким-то образом, если я отлаживаю приведенный выше код с помощью pdb.set_trace(), я получаю User.objects.all(), равный . Однако реальных тестовых записей БД нет. Поэтому при запросе объектов «Пользователь» в другой функции высокого уровня, например. «GraphQL» или REST, я получаю абсолютно пустую таблицу «Пользователи».
Как я могу включить реальные тестовые транзакции БД?
Почему pytest не разрешает какие-либо физические записи или что мешает их вставке ?

Подробнее здесь: https://stackoverflow.com/questions/689 ... ransaction

Вернуться в «Python»