Объединение тестов и передача объекта из одного теста в другойPython

Программы на Python
Anonymous
 Объединение тестов и передача объекта из одного теста в другой

Сообщение Anonymous »

Я пытаюсь передать результат одного теста другому в pytest — или, точнее, повторно использовать объект, созданный первым тестом, во втором тесте.
Вот как я сейчас это делаю.

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

@pytest.fixture(scope="module")
def result_holder:
return []

def test_creation(result_holder):
object = create_object()
assert object.status == 'created' # test that creation works as expected
result_holder.append(object.id) # I need this value for the next test

# ideally this test should only run if the previous test was successful
def test_deletion(result_holder):
previous_id = result_holder.pop()
object = get_object(previous_id) # here I retrieve the object created in the first test
object.delete()
assert object.status == 'deleted' # test for deletion
(прежде чем мы продолжим, я знаю, что py.test передает результаты одного теста другому - но единственный ответ на этот вопрос не по теме, а самому вопросу 2 года)

Использование подобных фикстур не кажется супер-чистым... И поведение неясно, если первый тест не пройден (хотя это можно исправить, проверив содержимое фикстуры или используя что-то вроде инкрементного приспособления в документе pytest и комментариях ниже). Есть ли лучший/более канонический способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/492 ... to-another

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