1234567891011121314151617181920212223242526272829303132333435363738 |
- import sys
- import warnings
- from types import ModuleType
- from typing import Any
- from typing import List
- import pytest
- from _pytest.deprecated import PYTEST_COLLECT_MODULE
- COLLECT_FAKEMODULE_ATTRIBUTES = [
- "Collector",
- "Module",
- "Function",
- "Session",
- "Item",
- "Class",
- "File",
- "_fillfuncargs",
- ]
- class FakeCollectModule(ModuleType):
- def __init__(self) -> None:
- super().__init__("pytest.collect")
- self.__all__ = list(COLLECT_FAKEMODULE_ATTRIBUTES)
- self.__pytest = pytest
- def __dir__(self) -> List[str]:
- return dir(super()) + self.__all__
- def __getattr__(self, name: str) -> Any:
- if name not in self.__all__:
- raise AttributeError(name)
- warnings.warn(PYTEST_COLLECT_MODULE.format(name=name), stacklevel=2)
- return getattr(pytest, name)
- sys.modules["pytest.collect"] = FakeCollectModule()
|