Передача параметров в приспособление pytest, которое также требует очисткиPython

Программы на Python
Anonymous
Передача параметров в приспособление pytest, которое также требует очистки

Сообщение Anonymous »

Я определил приспособление, которое принимает аргументы для использования в тесте стиля интеграции, который требует некоторого демонтажа после завершения. Выглядит это примерно так:

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

@pytest.fixture
def create_user_in_third_party():
from clients import third_party_client

def _create_user_in_third_party(user: User):
third_party_client.create_user(user)

return _create_user_in_third_party
Однако затем мы хотели бы очистить созданного пользователя после завершения жизненного цикла теста. В стандартном приспособлении это может выглядеть так:

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

@pytest.fixture
def create_user():
user = User(name="Jim")
user.save()
yield user
user.delete()
При применении той же парадигмы к прибору, который принимает аргументы, описанные выше, я вообще не вижу вызова прибора (возвращает генератор, который не выполняет внутренний код метода).< /p>
Этот код (не работает) выглядит так:

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

def create_user_in_third_party():
from clients import third_party_client

def _create_user_in_third_party(user: User):
third_party_client.create_user(user)
yield # give back control to caller
third_party_client.delete_user(user)

return _create_user_in_third_party
Можно ли добиться вышеперечисленного, не разбивая создание и удаление на два разных инструмента?

Подробнее здесь: https://stackoverflow.com/questions/784 ... ds-cleanup

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