Skip to content

Commit d415833

Browse files
Fix: assertrepr_compare should respect dictionary insertion order (Closes #13503)
1 parent 2fb64da commit d415833

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/_pytest/_io/saferepr.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,28 @@ def repr_instance(self, x: object, level: int) -> str:
7777
s = _format_repr_exception(exc, x)
7878
if self.maxsize is not None:
7979
s = _ellipsize(s, self.maxsize)
80+
81+
return s
82+
83+
def repr_dict(self, x: dict[object, object], level: int) -> str:
84+
n = len(x)
85+
if n == 0:
86+
return "{}"
87+
if level <= 0:
88+
return "{...}"
89+
s = "{"
90+
keys = list(x)
91+
for i, key in enumerate(keys):
92+
if i >= self.maxdict:
93+
s += "...}"
94+
break
95+
if i > 0:
96+
s += ", "
97+
keyrepr = self.repr1(key, level - 1)
98+
valrepr = self.repr1(x[key], level - 1)
99+
s += f"{keyrepr}: {valrepr}"
100+
else:
101+
s += "}"
80102
return s
81103

82104

0 commit comments

Comments
 (0)