Автоматическое оформление pytest.mark на основе приспособленияPython

Программы на Python
Ответить
Anonymous
 Автоматическое оформление pytest.mark на основе приспособления

Сообщение Anonymous »

Предположим, в моем файле conftest.py установлено приспособление pytest, которое выглядит так:

Код: Выделить всё

def live_fixture():
# network access here...
pass
Я использую это же приспособление во многих тестовых функциях, скажем, что test_spam.py имеет некоторые тестовые функции:

Код: Выделить всё

@pytest.mark.live
def test_one(live_fixture):
assert 1

def test_one():
assert 2

@pytest.mark.live
def test_three(live_fixture):
assert 3
Я использую украшение @pytest.mark.live для первой и третьей тестовых функций, поскольку оба этих теста зависят от фикстуры live_fixture , который выходит по сети и что-то делает. Обоснование: мне нравится, когда надежная часть моих тестов проходит в автономном режиме, например

Код: Выделить всё

py.test -m "not live" test_spam.py --blockage
надежно пройдет (с использованием изящного модуля pytest-blockage для обеспечения ограничения доступа к сети).

Но писать украшение @pytest.mark.live для каждой тестовой функции, использующей live_fixture, утомительно и подвержено ошибкам. Есть ли способ заставить это приспособление объявить, что к любой тестовой функции, которая его использует, должно автоматически применяться украшение @pytest.mark.live, или какой-то способ обнаружить внутри файла test_spam.py, что test_one и test_three используют этот live_fixture и поэтому должны быть эффективно оформлены @pytest.mark.live?

Подробнее здесь: https://stackoverflow.com/questions/379 ... on-fixture
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»