Decorator to skip a test if an optional module is missing
PARAMETER | DESCRIPTION |
modules | Module name or list of module names TYPE: Union[str, Iterable[str]] |
dep_target | Target name for pip installation (e.g. 'test' in pip install ag2[test]) TYPE: str |
Source code in autogen/import_utils.py
| def skip_on_missing_imports(modules: Union[str, Iterable[str]], dep_target: str) -> Callable[[T], T]:
"""Decorator to skip a test if an optional module is missing
Args:
modules: Module name or list of module names
dep_target: Target name for pip installation (e.g. 'test' in pip install ag2[test])
"""
import pytest
missing_modules = get_missing_imports(modules)
if not missing_modules:
def decorator(o: T) -> T:
pytest_mark_o = _mark_object(o, dep_target)
return pytest_mark_o # type: ignore[no-any-return]
else:
def decorator(o: T) -> T:
pytest_mark_o = _mark_object(o, dep_target)
return pytest.mark.skip( # type: ignore[return-value,no-any-return]
f"Missing module{'s' if len(missing_modules) > 1 else ''}: {', '.join(missing_modules)}. Install using 'pip install ag2[{dep_target}]'"
)(pytest_mark_o)
return decorator
|