MCPcopy
hub / github.com/pytest-dev/pytest / evaluate_skip_marks

Function evaluate_skip_marks

src/_pytest/skipping.py:169–194  ·  view source on GitHub ↗

Evaluate skip and skipif marks on item, returning Skip if triggered.

(item: Item)

Source from the content-addressed store, hash-verified

167
168
169def evaluate_skip_marks(item: Item) -> Skip | None:
170 """Evaluate skip and skipif marks on item, returning Skip if triggered."""
171 for mark in item.iter_markers(name="skipif"):
172 if "condition" not in mark.kwargs:
173 conditions = mark.args
174 else:
175 conditions = (mark.kwargs["condition"],)
176
177 # Unconditional.
178 if not conditions:
179 reason = mark.kwargs.get("reason", "")
180 return Skip(reason)
181
182 # If any of the conditions are true.
183 for condition in conditions:
184 result, reason = evaluate_condition(item, mark, condition)
185 if result:
186 return Skip(reason)
187
188 for mark in item.iter_markers(name="skip"):
189 try:
190 return Skip(*mark.args, **mark.kwargs)
191 except TypeError as e:
192 raise TypeError(str(e) + " - maybe you meant pytest.mark.skipif?") from None
193
194 return None
195
196
197@dataclasses.dataclass(frozen=True)

Calls 4

SkipClass · 0.85
evaluate_conditionFunction · 0.85
iter_markersMethod · 0.80
getMethod · 0.45