Fix fixture lookup in pytest_generate_tests
Signed-off-by: Kirill Sosnovskikh <k.sosnovskikh@yadro.com>
This commit is contained in:
parent
156c32a0cb
commit
65fab7f1c5
2 changed files with 20 additions and 16 deletions
|
@ -21,7 +21,7 @@ Additionally, `allure-validator` can be added to pre-commit hooks:
|
|||
# .pre-commit-config.yaml
|
||||
repos:
|
||||
- repo: https://git.frostfs.info/TrueCloudLab/allure-validator
|
||||
rev: 1.0.0
|
||||
rev: latest
|
||||
hooks:
|
||||
- id: allure-validator
|
||||
args: ["pytest_tests/"]
|
||||
|
|
|
@ -133,21 +133,25 @@ def fixtures(ast_fixtures: list[ast.FunctionDef], ast_hooks: list[ast.FunctionDe
|
|||
|
||||
for ast_hook in ast_hooks:
|
||||
path = getattr(ast_hook, ATTR_PATH)
|
||||
for node in ast_hook.body:
|
||||
if isinstance(node, ast.Expr):
|
||||
if parse.decorator(node.value) == PYTEST_METAFUNC_PARAMETRIZE:
|
||||
fixture_names = parse.param_names(node.value.args[0])
|
||||
for name in fixture_names:
|
||||
# Dynamic fake fixture
|
||||
fixture = Fixture(
|
||||
name,
|
||||
path,
|
||||
node.lineno,
|
||||
node.col_offset,
|
||||
args=[],
|
||||
params=["parametrized"],
|
||||
)
|
||||
fixtures[fixture] = fixture
|
||||
for node in ast.walk(ast_hook):
|
||||
if not isinstance(node, ast.Expr):
|
||||
continue
|
||||
|
||||
if parse.decorator(node.value) != PYTEST_METAFUNC_PARAMETRIZE:
|
||||
continue
|
||||
|
||||
fixture_names = parse.param_names(node.value.args[0])
|
||||
for name in fixture_names:
|
||||
# Dynamic fake fixture
|
||||
fixture = Fixture(
|
||||
name,
|
||||
path,
|
||||
node.lineno,
|
||||
node.col_offset,
|
||||
args=[],
|
||||
params=["parametrized"],
|
||||
)
|
||||
fixtures[fixture] = fixture
|
||||
|
||||
for fixture in fixtures.values():
|
||||
for arg in fixture.args:
|
||||
|
|
Loading…
Reference in a new issue