FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

display single contained exception in excgroups in test summary by jakkdl · Pull Request #12975 · pytest-dev/pytest · GitHub

display single contained exception in excgroups in test summary - #12975

Merged
Zac-HD merged 7 commits into
pytest-dev:mainfrom
jakkdl:short_info_excgroup
Nov 25, 2024
Merged

display single contained exception in excgroups in test summary#12975
Zac-HD merged 7 commits into
pytest-dev:mainfrom
jakkdl:short_info_excgroup

Conversation

jakkdl commented Nov 18, 2024
edited
Loading

Copy link
Copy Markdown
Member

fixes #12943

As ExceptionInfo still doesn't have proper support for exception groups this continues upon the hacky solution from #10209, modifying the reprcrash as well.

I find this solution ... incredibly hacky and ugly, and am not a fan that n==1 gets handled but not n==2. But conceptually it just gets really tricky to figure out what info to strip, and how to show that. If we're going with stripping structure & group messages we could extend this solution to something like [in ExceptionGroup]: ValueError("foo"), TypeError("bar").

EDIT: less hacky now that I moved the code to ExceptionInfo.exconly

psf-chronographer Bot added the bot:chronographer:provided (automation) changelog entry is part of PR label Nov 18, 2024
jakkdl marked this pull request as ready for review November 19, 2024 16:22
jakkdl requested a review from Zac-HD November 19, 2024 16:28
Comment thread src/_pytest/_code/code.py
Comment thread src/_pytest/_code/code.py Outdated
and isinstance(self.value, BaseExceptionGroup)
and (subexc := _get_single_subexc(self.value)) is not None
):
return f"[in {type(self.value).__name__}] {subexc!r}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality
Suggested change
return f"[in {type(self.value).__name__}] {subexc!r}"
return f"{subexc!r} [single exception in {type(self.value).__name__}]"

as discussed in the issue

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

fixed, but noted my disagreement in the issue :)

Zac-HD left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Thanks @jakkdl!

I really appreciate your writeup in #12943 (comment), but continue to prefer this style for a few reasons:

  • when the nodeid is long and we can get truncation of this short message, I want to keep the leaf-type as the first part of this message. Generally users who are seeing ExceptionGroups know they're possible, so I'm not too worried about truncating that note away in such cases
  • single-leaf groups are qualitatively simpler to think about than multi-leaf groups - the structure of the latter often matters, for example, while the former are basically just extra structure in the traceback - and so discarding the more complex structure feels a bit worse
    • I think we'll probably want to do something better for these cases too at some point, but I don't yet know what and would prefer to wait until we have a proposal that users seem enthusiastic about.

I'm happy with this PR as-is since it seems to me like a clear improvement on the status quo; if nobody else has feedback I'll merge in a few days 🙂

Zac-HD merged commit acf1303 into pytest-dev:main Nov 25, 2024
jakkdl deleted the short_info_excgroup branch November 26, 2024 15:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:chronographer:provided (automation) changelog entry is part of PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

=== short test summary info === messages are not useful for ExceptionGroups

2 participants


Back | FazBrowse Home | New Git URL