← Files AgentBrokoARCHIVED FILE
.venv/Lib/site-packages/_pytest/assertion/_compare_mapping.py
1.64 KB · Sep 30, 2026 · 23:15 UTC
from __future__ import annotations
from collections.abc import Iterator
from collections.abc import Mapping
import pprint
from _pytest._io.saferepr import saferepr
from _pytest.assertion._typing import _HighlightFunc
def _compare_eq_mapping(
left: Mapping[object, object],
right: Mapping[object, object],
highlighter: _HighlightFunc,
verbose: int = 0,
) -> Iterator[str]:
set_left = set(left)
set_right = set(right)
common = set_left.intersection(set_right)
same = {k: left[k] for k in common if left[k] == right[k]}
if same and verbose < 2:
yield f"Omitting {len(same)} identical items, use -vv to show"
elif same:
yield "Common items:"
yield from highlighter(pprint.pformat(same)).splitlines()
diff = {k for k in common if left[k] != right[k]}
if diff:
yield "Differing items:"
for k in diff:
yield (
highlighter(saferepr({k: left[k]}))
+ " != "
+ highlighter(saferepr({k: right[k]}))
)
extra_left = set_left - set_right
len_extra_left = len(extra_left)
if len_extra_left:
yield f"Left contains {len_extra_left} more item{'' if len_extra_left == 1 else 's'}:"
yield from highlighter(
pprint.pformat({k: left[k] for k in extra_left})
).splitlines()
extra_right = set_right - set_left
len_extra_right = len(extra_right)
if len_extra_right:
yield f"Right contains {len_extra_right} more item{'' if len_extra_right == 1 else 's'}:"
yield from highlighter(
pprint.pformat({k: right[k] for k in extra_right})
).splitlines()
SHA-256: 74a33986faa3645f96334887c04ee51e3ea689568b4edeeed1e429ae9d86f690