userver: /home/antonyzhilin/arcadia/taxi/uservices/userver/testsuite/pytest_plugins/pytest_userver/plugins/coverage.py Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
coverage.py
1"""
2Helpers for coverage plugins.
3"""
4
5
6class UncoveredError(Exception):
7 pass
8
9
10def collection_modifyitems(test_name, config, items) -> None:
11 """
12 Moves coverage tests to the end.
13 """
14
15 tests = set(config.cache.get('coverage_tests', set()))
16 tests.add(test_name)
17 config.cache.set('coverage_tests', list(tests))
18
19 coverage_indices = [i for i in range(len(items)) if items[i].name in tests]
20
21 if not coverage_indices:
22 return
23
24 modified_items = []
25
26 for i in range(len(items)):
27 if i not in coverage_indices:
28 modified_items.append(items[i])
29
30 for i in coverage_indices:
31 modified_items.append(items[i])
32
33 items[:] = modified_items