Revert iter raises checks

This reverts commit e938580257.

Revert "improve error msg and test"

This reverts commit c0cf822ca1.

Revert "error msg"

This reverts commit ec1053cc16.

Revert "changelog"

This reverts commit d2dc8a70b5.

Revert "simplify code / take out user-gen typeerror case"

This reverts commit b9cb87d862.
This commit is contained in:
Reagan Lee 2023-08-20 14:04:20 -07:00
parent c0cf822ca1
commit 049eec8474
3 changed files with 9 additions and 24 deletions

View File

@ -1 +0,0 @@
Assertion rewrite mechanism now gives a seperate, more detailed error message from failures within __iter__.

View File

@ -134,13 +134,6 @@ def isiterable(obj: Any) -> bool:
return not istext(obj) return not istext(obj)
except TypeError: except TypeError:
return False return False
except Exception as e:
raise ValueError(
[
f"pytest_assertion plugin: unexpected exception {e!r} while testing object {obj!r}",
", probably from __iter__",
]
)
def has_default_eq( def has_default_eq(
@ -202,20 +195,13 @@ def assertrepr_compare(
explanation = _notin_text(left, right, verbose) explanation = _notin_text(left, right, verbose)
except outcomes.Exit: except outcomes.Exit:
raise raise
except Exception as e: except Exception:
if ( explanation = [
isinstance(e, ValueError) "(pytest_assertion plugin: representation of details failed: {}.".format(
and (len(e.args) == 1) _pytest._code.ExceptionInfo.from_current()._getreprcrash()
and ("__iter__" in str(e.args[0])) ),
): " Probably an object has a faulty __repr__.)",
explanation = e.args[0] ]
else:
explanation = [
"(pytest_assertion plugin: representation of details failed: {}.".format(
_pytest._code.ExceptionInfo.from_current()._getreprcrash()
),
" Probably an object has a faulty __repr__.)",
]
if not explanation: if not explanation:
return None return None

View File

@ -689,7 +689,7 @@ class TestAssertionRewrite:
def f() -> None: def f() -> None:
class A: class A:
def __iter__(self): def __iter__(self):
raise ValueError() raise TypeError("user message")
def __eq__(self, o: object) -> bool: def __eq__(self, o: object) -> bool:
return self is o return self is o
@ -698,7 +698,7 @@ class TestAssertionRewrite:
msg = getmsg(f) msg = getmsg(f)
assert msg is not None assert msg is not None
assert "__iter__" in msg and "__repr__" not in msg assert "Unexpected exception" in msg
def test_formatchar(self) -> None: def test_formatchar(self) -> None:
def f() -> None: def f() -> None: