From 39339b991d5e20317fcbf0b1b4a1265b86cc75a0 Mon Sep 17 00:00:00 2001 From: Cheukting Date: Thu, 23 Jun 2022 15:03:48 +0800 Subject: [PATCH] fix if ExceptionGroup not exist --- src/_pytest/_code/code.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/_pytest/_code/code.py b/src/_pytest/_code/code.py index a3cdc7e3b..3fa0b637b 100644 --- a/src/_pytest/_code/code.py +++ b/src/_pytest/_code/code.py @@ -56,6 +56,18 @@ if TYPE_CHECKING: _TracebackStyle = Literal["long", "short", "line", "no", "native", "value", "auto"] +ExceptionGroupTypes: tuple = () +try: + ExceptionGroupTypes += (ExceptionGroup,) +except NameError: + pass # Is missing for `python<3.10` +try: + import exceptiongroup + + ExceptionGroupTypes += (exceptiongroup.ExceptionGroup,) +except ModuleNotFoundError: + pass # No backport is installed + class Code: """Wrapper around Python code objects.""" @@ -923,7 +935,7 @@ class FormattedExcinfo: seen: Set[int] = set() while e is not None and id(e) not in seen: seen.add(id(e)) - if isinstance(e, ExceptionGroup): + if isinstance(e, ExceptionGroupTypes): reprtraceback = ReprTracebackNative( traceback.format_exception( type(e), e, excinfo.traceback[0]._rawentry