Skip to content

Commit 43da71d

Browse files
committed
Add nice error message when objects are not equal but their repr is.
1 parent abece41 commit 43da71d

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

python/selfie-lib/selfie_lib/SelfieImplementations.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -270,13 +270,18 @@ def _toBeDidntMatch(expected: Optional[T], actual: T, fmt: LiteralFormat[T]) ->
270270
f"Can't call `toBe_TODO` in {Mode.readonly} mode!"
271271
)
272272
else:
273-
raise _selfieSystem().fs.assert_failed(
274-
message=_selfieSystem().mode.msg_snapshot_mismatch(
275-
expected=repr(expected), actual=repr(actual)
276-
),
277-
expected=expected,
278-
actual=actual,
279-
)
273+
expectedStr = repr(expected)
274+
actualStr = repr(actual)
275+
if expectedStr == actualStr:
276+
raise f"Value of type {type(actual)} is not `==` to the expected value, but they both have the same `repr` value:\n${expectedStr}"
277+
else:
278+
raise _selfieSystem().fs.assert_failed(
279+
message=_selfieSystem().mode.msg_snapshot_mismatch(
280+
expected=expectedStr, actual=actualStr
281+
),
282+
expected=expected,
283+
actual=actual,
284+
)
280285

281286

282287
def _assertEqual(

0 commit comments

Comments
 (0)