MCPcopy Index your code
hub / github.com/pytest-dev/pytest / _validate_if_using_arg_names

Method _validate_if_using_arg_names

src/_pytest/python.py:1492–1520  ·  view source on GitHub ↗

Check if all argnames are being used, by default values, or directly/indirectly. :param List[str] argnames: List of argument names passed to ``parametrize()``. :param indirect: Same as the ``indirect`` parameter of ``parametrize()``. :raises ValueError: If validation fails.

(
        self,
        argnames: Sequence[str],
        indirect: bool | Sequence[str],
    )

Source from the content-addressed store, hash-verified

1490 return list(itertools.islice(ids, num_ids))
1491
1492 def _validate_if_using_arg_names(
1493 self,
1494 argnames: Sequence[str],
1495 indirect: bool | Sequence[str],
1496 ) -> None:
1497 """Check if all argnames are being used, by default values, or directly/indirectly.
1498
1499 :param List[str] argnames: List of argument names passed to ``parametrize()``.
1500 :param indirect: Same as the ``indirect`` parameter of ``parametrize()``.
1501 :raises ValueError: If validation fails.
1502 """
1503 default_arg_names = set(get_default_arg_names(self.function))
1504 nodeid = self.definition.nodeid
1505 for arg in argnames:
1506 if arg not in self.fixturenames:
1507 if arg in default_arg_names:
1508 fail(
1509 f"In {nodeid}: function already takes an argument '{arg}' with a default value",
1510 pytrace=False,
1511 )
1512 else:
1513 if isinstance(indirect, Sequence):
1514 name = "fixture" if arg in indirect else "argument"
1515 else:
1516 name = "fixture" if indirect else "argument"
1517 fail(
1518 f"In {nodeid}: function uses no {name} '{arg}'",
1519 pytrace=False,
1520 )
1521
1522 def _recompute_direct_params_indices(self) -> None:
1523 for argname, param_type in self._params_directness.items():

Callers 1

parametrizeMethod · 0.95

Calls 1

get_default_arg_namesFunction · 0.90

Tested by

no test coverage detected