Untitled
unknown
python
a year ago
945 B
4
Indexable
from typing import Callable
from abc import ABC
import pytest
from pprint import pprint
class TestDoc(ABC):
@classmethod
def collect_subclasses(cls) -> list['TestDoc']:
"""Collect all Test Documentation classes recursively"""
subclasses = []
for subclass in cls.__subclasses__():
subclasses.append(subclass)
subclasses.extend(subclass.collect_subclasses())
return subclasses
@classmethod
def extract_markering(cls) -> list[Callable[[pytest.Item], None]]:
pytest_marks = getattr(cls, 'pytestmark')
markering: list[Callable[[pytest.Item], None]] = []
for mark in pytest_marks:
markering.append(lambda item: item.add_marker(mark.name))
if hasattr(cls, '__allure_display_name__'):
markering.append(lambda item: setattr(item, '__allure_display_name__', getattr(cls, '__allure_display_name__')))
return markering
Editor is loading...
Leave a Comment