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, при этом настроить действия до и после.