Как построить плагин оболочки обертки? - PullRequest
1 голос
/ 28 апреля 2020

Я хочу обернуть плагин pytest- html следующим образом:

  1. Добавить опцию X
  2. С учетом опции X удалить данные из отчета

Мне удалось добавить опцию с реализацией функции pytest_addoption(parser), но я застрял на второй вещи ...

Что я смог сделать, так это: реализовать хук frmo pytest- html. Тем не менее, я должен получить доступ к своему варианту X, чтобы сделать, что делать. Проблема в том, что хук pytest- html не дает объект «запрос» в качестве параметра, поэтому я не могу получить доступ к значению опции ...

Могу ли я иметь дополнительные аргументы для хука ? или как то так?

1 Ответ

1 голос
/ 29 апреля 2020

Вы можете прикрепить дополнительные данные к объекту отчета, например, через пользовательскую оболочку вокруг хука pytest_runtest_makereport:

@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result()
    report.config = item.config

Теперь объект config будет доступен через report.config во всех хуки для отчетов, в том числе pytest-html:

def pytest_html_report_title(report):
    """ Called before adding the title to the report """
    assert report.config is not None
...