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)
except TypeError:
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(
@ -202,20 +195,13 @@ def assertrepr_compare(
explanation = _notin_text(left, right, verbose)
except outcomes.Exit:
raise
except Exception as e:
if (
isinstance(e, ValueError)
and (len(e.args) == 1)
and ("__iter__" in str(e.args[0]))
):
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__.)",
]
except Exception:
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:
return None

View File

@ -689,7 +689,7 @@ class TestAssertionRewrite:
def f() -> None:
class A:
def __iter__(self):
raise ValueError()
raise TypeError("user message")
def __eq__(self, o: object) -> bool:
return self is o
@ -698,7 +698,7 @@ class TestAssertionRewrite:
msg = getmsg(f)
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 f() -> None: