Compare commits

...

2 commits

Author SHA1 Message Date
dba27032e4 Fix fixture lookup in pytest_generate_tests
Signed-off-by: Kirill Sosnovskikh <k.sosnovskikh@yadro.com>
2024-08-20 18:06:47 +03:00
76ba757964 Add pre-commit support
Signed-off-by: Kirill Sosnovskikh <k.sosnovskikh@yadro.com>
2024-08-20 18:06:47 +03:00
2 changed files with 22 additions and 21 deletions

View file

@ -20,15 +20,12 @@ Additionally, `allure-validator` can be added to pre-commit hooks:
```yaml ```yaml
# .pre-commit-config.yaml # .pre-commit-config.yaml
repos: repos:
- repo: local - repo: https://git.frostfs.info/TrueCloudLab/allure-validator
rev: 1.0.0
hooks: hooks:
- id: allure-validator - id: allure-validator
name: allure-validator args: ["pytest_tests/"]
entry: allure-validator
language: system
args: ["pytest_tests/"] # folder with tests
pass_filenames: false pass_filenames: false
types: [python]
``` ```
### Ignore mechanism ### Ignore mechanism

View file

@ -133,21 +133,25 @@ def fixtures(ast_fixtures: list[ast.FunctionDef], ast_hooks: list[ast.FunctionDe
for ast_hook in ast_hooks: for ast_hook in ast_hooks:
path = getattr(ast_hook, ATTR_PATH) path = getattr(ast_hook, ATTR_PATH)
for node in ast_hook.body: for node in ast.walk(ast_hook):
if isinstance(node, ast.Expr): if not isinstance(node, ast.Expr):
if parse.decorator(node.value) == PYTEST_METAFUNC_PARAMETRIZE: continue
fixture_names = parse.param_names(node.value.args[0])
for name in fixture_names: if parse.decorator(node.value) != PYTEST_METAFUNC_PARAMETRIZE:
# Dynamic fake fixture continue
fixture = Fixture(
name, fixture_names = parse.param_names(node.value.args[0])
path, for name in fixture_names:
node.lineno, # Dynamic fake fixture
node.col_offset, fixture = Fixture(
args=[], name,
params=["parametrized"], path,
) node.lineno,
fixtures[fixture] = fixture node.col_offset,
args=[],
params=["parametrized"],
)
fixtures[fixture] = fixture
for fixture in fixtures.values(): for fixture in fixtures.values():
for arg in fixture.args: for arg in fixture.args: