blob: 982176c02db2f472d3810753f167d953d34940ac (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
from __future__ import annotations
import pytest
from .utils import get_fixturenames_closure_and_arg2fixturedefs
def collect_fixtures(config: pytest.Config, items: list[pytest.Item]):
fm = config.pluginmanager.get_plugin("funcmanage")
func_items = [i for i in items if isinstance(i, pytest.Function)]
for item in func_items:
for marker in item.own_markers:
if marker.name != "parametrize":
continue
params = marker.args[1] if len(marker.args) > 1 else marker.kwargs["argvalues"]
arg2fixturedefs = {}
for param in params:
_, _arg2fixturedefs = get_fixturenames_closure_and_arg2fixturedefs(fm, item.parent, param)
arg2fixturedefs.update(_arg2fixturedefs)
item._fixtureinfo.name2fixturedefs.update(arg2fixturedefs)
|