Как использовать крепление pytest в конструкторе классов - PullRequest
0 голосов
/ 25 февраля 2019

Я использую pytest и пытаюсь создать объект, который должен использоваться во многих классах моего проекта.Я пытаюсь передать объект одному из классов, но пиктограмма показывает мне «Неразрешенная ссылка» custom_inst.

Вот мой код:

conftest.py:

@pytest.fixture(scope="function", autouse=True)
def fixture_example(request):
    custom_inst = FixtureClass()
    yield custom_inst
    custom_inst.do_something()

какой-то класс:

@pytest.mark.usefixtures('fixture_example')
class DummyClass(object):
    def __init__(self, arg1=None, arg2=None):
        self.arg1 = arg1
        self.arg2 = arg2
        self.custom_inst = fixture_example

как я могу передать экземпляр custom_inst моему DummyClass как член класса?

Спасибо.

1 Ответ

0 голосов
/ 26 февраля 2019

Проблема в том, что вы пытаетесь смешать сущность pytest (фикстура) и сущность, не являющуюся pytest (класс DummyClass).

В этом случае DummyClass никогда не будет выполняться pytest, потому что бегунок pytest собирает и выполняет классы, которые начинать только с ключевого слова "Тест" .С другой стороны, если вы вызываете DummyClass () напрямую, fixture_example не будет выполняться, потому что его использует только pytest runner.

...