|
7 | 7 |
|
8 | 8 | def pytest_collection_modifyitems(config, items):
|
9 | 9 | """Add the `benchmark` marker to all tests under `./tests/benchmark`."""
|
| 10 | + benchmark_dir = Path(__file__).parent |
| 11 | + benchmark_marker = pytest.mark.benchmark |
| 12 | + gen_docs = config.getoption("--gen-docs", default=False) |
| 13 | + |
| 14 | + if gen_docs: |
| 15 | + for item in items: |
| 16 | + if benchmark_dir in Path(item.fspath).parents and not item.get_closest_marker( |
| 17 | + "benchmark" |
| 18 | + ): |
| 19 | + item.add_marker(benchmark_marker) |
| 20 | + return |
| 21 | + |
10 | 22 | marker_expr = config.getoption("-m", default="")
|
11 |
| - gas_benchmark_values = config.getoption("--gas-benchmark-values", default=None) |
12 |
| - run_benchmarks = marker_expr and ( |
13 |
| - "benchmark" in marker_expr and "not benchmark" not in marker_expr |
14 |
| - ) |
15 |
| - if gas_benchmark_values: |
16 |
| - run_benchmarks = True |
| 23 | + run_benchmarks = ( |
| 24 | + marker_expr and "benchmark" in marker_expr and "not benchmark" not in marker_expr |
| 25 | + ) or config.getoption("--gas-benchmark-values", default=None) |
| 26 | + |
17 | 27 | items_for_removal = []
|
18 | 28 | for i, item in enumerate(items):
|
19 |
| - is_in_benchmark_dir = Path(__file__).parent in Path(item.fspath).parents |
20 |
| - has_benchmark_marker = item.get_closest_marker("benchmark") is not None |
21 |
| - is_benchmark_test = is_in_benchmark_dir or has_benchmark_marker |
22 |
| - if is_benchmark_test: |
23 |
| - if is_in_benchmark_dir and not has_benchmark_marker: |
24 |
| - benchmark_marker = pytest.mark.benchmark |
| 29 | + is_in_benchmark_dir = benchmark_dir in Path(item.fspath).parents |
| 30 | + is_benchmark_test = is_in_benchmark_dir or item.get_closest_marker("benchmark") |
25 | 31 |
|
| 32 | + if is_benchmark_test: |
| 33 | + if is_in_benchmark_dir and not item.get_closest_marker("benchmark"): |
26 | 34 | item.add_marker(benchmark_marker)
|
27 | 35 | if not run_benchmarks:
|
28 | 36 | items_for_removal.append(i)
|
29 |
| - |
30 | 37 | elif run_benchmarks:
|
31 | 38 | items_for_removal.append(i)
|
32 | 39 |
|
|
0 commit comments