MCPcopy Create free account
hub / github.com/pytest-dev/pytest / reorder_items

Function reorder_items

src/_pytest/fixtures.py:279–296  ·  view source on GitHub ↗
(items: Sequence[nodes.Item])

Source from the content-addressed store, hash-verified

277
278
279def reorder_items(items: Sequence[nodes.Item]) -> List[nodes.Item]:
280 argkeys_cache: Dict[Scope, Dict[nodes.Item, Dict[_Key, None]]] = {}
281 items_by_argkey: Dict[Scope, Dict[_Key, Deque[nodes.Item]]] = {}
282 for scope in HIGH_SCOPES:
283 d: Dict[nodes.Item, Dict[_Key, None]] = {}
284 argkeys_cache[scope] = d
285 item_d: Dict[_Key, Deque[nodes.Item]] = defaultdict(deque)
286 items_by_argkey[scope] = item_d
287 for item in items:
288 keys = dict.fromkeys(get_parametrized_fixture_keys(item, scope), None)
289 if keys:
290 d[item] = keys
291 for key in keys:
292 item_d[key].append(item)
293 items_dict = dict.fromkeys(items, None)
294 return list(
295 reorder_items_atscope(items_dict, argkeys_cache, items_by_argkey, Scope.Session)
296 )
297
298
299def fix_cache_order(

Callers 1

Calls 3

reorder_items_atscopeFunction · 0.85
appendMethod · 0.80

Tested by

no test coverage detected