Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

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

pytest
python
Теги: #<Tag:0x00007fedbf36b208> #<Tag:0x00007fedbf36ada8>

(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

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