Closed
Description
I recently had pytest-dev/pytest#10466 reported, and it seems likely to be an upstream bug in except*
- cc @iritkatriel fyi.
A somewhat simplified reproducing example:
class MyException(Exception):
__hash__ = None
# Traditional try-except works fine with unhashable exceptions, e.g.:
try:
raise ExceptionGroup("Foo", [MyException("Bar")])
except Exception:
pass
# But here we'll get a TypeError:
try:
raise ExceptionGroup("Foo", [MyException("Bar")])
except* Exception:
pass
+ Exception Group Traceback (most recent call last):
| File "repro.py", line 12, in <module>
| raise ExceptionGroup("Foo", [MyException("Bar")])
| ExceptionGroup: Foo (1 sub-exception)
+-+---------------- 1 ----------------
| MyException: Bar
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "repro.py", line -1, in <module>
TypeError: unhashable type: 'MyException'
If this is the intended behavior of course we'll work around it in Pytest, but we decided to report upstream in case it's not 🙂