(metafunc)
| 321 | |
| 322 | |
| 323 | def _parametrize_correlated_parameters(metafunc): |
| 324 | parametrize_needed = {} |
| 325 | |
| 326 | for name, fixturedefs in metafunc.definition._fixtureinfo.name2fixturedefs.items(): |
| 327 | fixturedef = fixturedefs[-1] |
| 328 | if hasattr(fixturedef.func, "parametrize_group") and hasattr( |
| 329 | fixturedef.func, "parametrize_values" |
| 330 | ): |
| 331 | group = fixturedef.func.parametrize_group |
| 332 | values = fixturedef.func.parametrize_values |
| 333 | ids = fixturedef.func.parametrize_ids |
| 334 | if group in parametrize_needed: |
| 335 | assert ids == parametrize_needed[group]["ids"] |
| 336 | else: |
| 337 | parametrize_needed[group] = {"ids": ids, "params": []} |
| 338 | parametrize_needed[group]["params"].append((name, values)) |
| 339 | |
| 340 | for parametrize_group in parametrize_needed.values(): |
| 341 | params = parametrize_group["params"] |
| 342 | ids = parametrize_group["ids"] |
| 343 | if len(params) == 1: |
| 344 | name, values = params[0] |
| 345 | metafunc.parametrize(name, values, indirect=True, ids=ids) |
| 346 | else: |
| 347 | names = ",".join(name for name, values in params) |
| 348 | value_sets = zip(*[values for name, values in params]) |
| 349 | metafunc.parametrize(names, value_sets, indirect=True, ids=ids) |
| 350 | |
| 351 | |
| 352 | # pytest-xdist isn't required but is used in CI, so guard on its presence |
no test coverage detected
searching dependent graphs…