Pytest - Как передать фикстуру в метод setup?

Насколько я понимаю, передать фикстуру в метод setup невозможно? Пытаюсь так:

@pytest.fixture
def my_fixture():
    return 'value'


class TestSome:
    def setup(self, my_fixture):
        print(my_fixture)  # <bound method TestSome.test_some of <test_views.TestSome object at 0x7ffc80e9b730>>

    def test_method(self):
        assert True

Получается сделать только так:

class TestSome:

    @pytest.fixture(autouse=True)
    def setup_smth_with_my_fixture(self, my_fixture):
        pass

    def test_some(self):
        assert False

Сам принцип фикстуры, что она выполняется в качестве сетапа. Если ты хочешь использовать результаты фикстуры во время теста, но при этом модифицировать ее и до и после теста, может помочь yield

@pytest.fixture()
def fixture():
    obj = Class()
    obj.foo_setup()
   
    yield obj

    obj.foo_teardown()

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

Вернуться на верх