1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import pytest
- import allure_commons
- from allure_pytest.utils import ALLURE_DESCRIPTION_MARK, ALLURE_DESCRIPTION_HTML_MARK
- from allure_pytest.utils import ALLURE_LABEL_MARK, ALLURE_LINK_MARK
- from allure_pytest.utils import format_allure_link
- class AllureTitleHelper:
- @allure_commons.hookimpl
- def decorate_as_title(self, test_title):
- def decorator(func):
- # pytest.fixture wraps function, so we need to get it directly
- if getattr(func, '__pytest_wrapped__', None):
- function = func.__pytest_wrapped__.obj
- else:
- function = func
- function.__allure_display_name__ = test_title
- return func
- return decorator
- class AllureTestHelper:
- def __init__(self, config):
- self.config = config
- @allure_commons.hookimpl
- def decorate_as_description(self, test_description):
- allure_description = getattr(pytest.mark, ALLURE_DESCRIPTION_MARK)
- return allure_description(test_description)
- @allure_commons.hookimpl
- def decorate_as_description_html(self, test_description_html):
- allure_description_html = getattr(pytest.mark, ALLURE_DESCRIPTION_HTML_MARK)
- return allure_description_html(test_description_html)
- @allure_commons.hookimpl
- def decorate_as_label(self, label_type, labels):
- allure_label = getattr(pytest.mark, ALLURE_LABEL_MARK)
- return allure_label(*labels, label_type=label_type)
- @allure_commons.hookimpl
- def decorate_as_link(self, url, link_type, name):
- url = format_allure_link(self.config, url, link_type)
- allure_link = getattr(pytest.mark, ALLURE_LINK_MARK)
- name = url if name is None else name
- return allure_link(url, name=name, link_type=link_type)
|