MCPcopy Create free account
hub / github.com/pytest-dev/pytest / _validate_if_using_arg_names

Method _validate_if_using_arg_names

src/_pytest/python.py:1285–1315  ·  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: Union[bool, Sequence[str]],
    )

Source from the content-addressed store, hash-verified

1283 return valtypes
1284
1285 def _validate_if_using_arg_names(
1286 self,
1287 argnames: Sequence[str],
1288 indirect: Union[bool, Sequence[str]],
1289 ) -> None:
1290 """Check if all argnames are being used, by default values, or directly/indirectly.
1291
1292 :param List[str] argnames: List of argument names passed to ``parametrize()``.
1293 :param indirect: Same as the ``indirect`` parameter of ``parametrize()``.
1294 :raises ValueError: If validation fails.
1295 """
1296 default_arg_names = set(get_default_arg_names(self.function))
1297 func_name = self.function.__name__
1298 for arg in argnames:
1299 if arg not in self.fixturenames:
1300 if arg in default_arg_names:
1301 fail(
1302 "In {}: function already takes an argument '{}' with a default value".format(
1303 func_name, arg
1304 ),
1305 pytrace=False,
1306 )
1307 else:
1308 if isinstance(indirect, Sequence):
1309 name = "fixture" if arg in indirect else "argument"
1310 else:
1311 name = "fixture" if indirect else "argument"
1312 fail(
1313 f"In {func_name}: function uses no {name} '{arg}'",
1314 pytrace=False,
1315 )
1316
1317
1318def _find_parametrized_scope(

Callers 1

parametrizeMethod · 0.95

Calls 3

get_default_arg_namesFunction · 0.90
failFunction · 0.90
formatMethod · 0.45

Tested by

no test coverage detected