Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Можно ли запретить использование фикстуры по условию?

pytest
python
Теги: #<Tag:0x00007f7b648922e0> #<Tag:0x00007f7b64892178>

(Bitande7) #1

Можно ли запретить использование фикстуры по условию?

Например есть фикстура. Её нужно использовать в каждом тесте, но если переменная delete_cookie = False в файле config.py, эту фикстуру нужно отключать и вообще не использовать.

Есть ли такая возможность в pytest?

@pytest.fixture(scope="function", autouse=True)
def delete_cookies(request):

    def fin():
        if browser is not None:
            browser.wd.delete_all_cookies()
        else:
            pass

    request.addfinalizer(fin)

(ex3me0) #2
@pytest.fixture(scope="function", autouse=True)
def delete_cookies(request):
    if 'not_delete_cookie' in request.keywords:
        return
    def fin():
        if browser is not None:
            browser.wd.delete_all_cookies()
    request.addfinalizer(fin)

@pytest.mark.not_delete_cookie
def test_some():
    pass

Уверен есть более замороченный способ, но сам всегда делал так