diff --git a/saqc/lib/types.py b/saqc/lib/types.py index 6a448460c0795a4c4bf73dd82e8dd2bd9eebf500..6080d661cea1342ea3cea5c212bdf7e22e741db1 100644 --- a/saqc/lib/types.py +++ b/saqc/lib/types.py @@ -32,7 +32,7 @@ ExternalFlag = Union[str, float, int] # needed for deeper type hinting magic class CurveFitter(Protocol): def __call__(self, data: np.ndarray, *params: float) -> np.ndarray: - ... + ... # pragma: no cover class GenericFunction(Protocol): @@ -41,7 +41,7 @@ class GenericFunction(Protocol): __globals__: Dict[str, Any] def __call__(self, *args: pd.Series) -> PandasLike: - ... + ... # pragma: no cover class OptionalNone: diff --git a/tests/core/test_FunctionsMixin.py b/tests/core/test_FunctionsMixin.py new file mode 100644 index 0000000000000000000000000000000000000000..a7ac03098a21bbfae2da89fa7e5100dbf317aa6f --- /dev/null +++ b/tests/core/test_FunctionsMixin.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +import inspect + +import pytest + +from saqc.core.modules import FunctionsMixin + + +methods = [ + attr + for attr in dir(FunctionsMixin) + if callable(getattr(FunctionsMixin, attr)) and not attr.startswith("_") +] + + +@pytest.mark.parametrize("name", methods) +def test_redirect_call(name): + fmixin = FunctionsMixin() + method = getattr(fmixin, name) + params = inspect.signature(method).parameters + assert "field" in params + assert "kwargs" in params + dummy_params = dict.fromkeys(params.keys()) + dummy_params.pop("kwargs") + + err_msg = "'FunctionsMixin' object has no attribute '_wrap'" + with pytest.raises(AttributeError, match=err_msg): + method(**dummy_params)