|
33 | 33 | # stdlib
|
34 | 34 | import itertools
|
35 | 35 | import random
|
36 |
| -from typing import Callable, Collection, Iterable, List, Optional, Sequence, Tuple, Union, cast, overload |
| 36 | +from typing import Callable, Collection, Iterable, List, Optional, Sequence, Tuple, TypeVar, Union, cast, overload |
37 | 37 |
|
38 | 38 | # 3rd party
|
39 | 39 | import pytest
|
|
46 | 46 |
|
47 | 47 | __all__ = ["count", "whitespace_perms", "testing_boolean_values", "param", "parametrized_versions"]
|
48 | 48 |
|
| 49 | +_T = TypeVar("_T") |
49 | 50 | MarkDecorator.__module__ = "_pytest.mark"
|
50 | 51 |
|
51 | 52 |
|
@@ -132,18 +133,18 @@ def param(
|
132 | 133 |
|
133 | 134 | @overload
|
134 | 135 | def param(
|
135 |
| - *values: object, |
| 136 | + *values: _T, |
136 | 137 | marks: Union[MarkDecorator, Collection[Union[MarkDecorator, Mark]]] = (),
|
137 |
| - key: Optional[Callable[[Tuple[object, ...]], str]], # noqa: A002 # pylint: disable=redefined-builtin |
| 138 | + key: Optional[Callable[[Tuple[_T, ...]], str]], # noqa: A002 # pylint: disable=redefined-builtin |
138 | 139 | ) -> ParameterSet: ...
|
139 | 140 |
|
140 | 141 |
|
141 | 142 | def param(
|
142 |
| - *values: object, |
| 143 | + *values: _T, |
143 | 144 | marks: Union[MarkDecorator, Collection[Union[MarkDecorator, Mark]]] = (),
|
144 | 145 | id: Optional[str] = None, # noqa: A002 # pylint: disable=redefined-builtin
|
145 | 146 | idx: Optional[int] = None,
|
146 |
| - key: Optional[Callable[[Tuple[object, ...]], str]] = None, |
| 147 | + key: Optional[Callable[[Tuple[_T, ...]], str]] = None, |
147 | 148 | ) -> ParameterSet:
|
148 | 149 | r"""
|
149 | 150 | Specify a parameter in `pytest.mark.parametrize <https://docs.pytest.org/en/stable/parametrize.html>`__
|
|
0 commit comments