Вот как я сейчас это делаю.
Код: Выделить всё
@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
Использование подобных фикстур не кажется супер-чистым... И поведение неясно, если первый тест не пройден (хотя это можно исправить, проверив содержимое фикстуры или используя что-то вроде инкрементного приспособления в документе pytest и комментариях ниже). Есть ли лучший/более канонический способ сделать это?
Подробнее здесь: https://stackoverflow.com/questions/492 ... to-another