| 55 | |
| 56 | |
| 57 | def get_empty_parameterset_mark( |
| 58 | config: Config, argnames: Sequence[str], func |
| 59 | ) -> MarkDecorator: |
| 60 | from ..nodes import Collector |
| 61 | |
| 62 | argslisting = ", ".join(argnames) |
| 63 | |
| 64 | _fs, lineno = getfslineno(func) |
| 65 | reason = f"got empty parameter set for ({argslisting})" |
| 66 | requested_mark = config.getini(EMPTY_PARAMETERSET_OPTION) |
| 67 | if requested_mark in ("", None, "skip"): |
| 68 | mark = MARK_GEN.skip(reason=reason) |
| 69 | elif requested_mark == "xfail": |
| 70 | mark = MARK_GEN.xfail(reason=reason, run=False) |
| 71 | elif requested_mark == "fail_at_collect": |
| 72 | raise Collector.CollectError( |
| 73 | f"Empty parameter set in '{func.__name__}' at line {lineno + 1}" |
| 74 | ) |
| 75 | else: |
| 76 | raise LookupError(requested_mark) |
| 77 | return mark |
| 78 | |
| 79 | |
| 80 | class ParameterSet(NamedTuple): |