Fix `test_simple_context` for `trio>=0.33` groups

Under `trio>=0.33`'s strict exception-groups a lone
`error_parent` arrives wrapped in a 1-exc `ExceptionGroup`
instead of collapsing to the bare exc, so it skips the
`except error_parent` arm and lands in the group arm — where
`is_multi_cancelled()` is (correctly) `False`, tripping the
assert. Also accept `beg.subgroup(error_parent) is not None`.

Review: PR #465 (copilot + self CI-triage)
https://github.com/goodboy/tractor/pull/465#pullrequestreview-4548191641

(this patch was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
Gud Boi 2026-06-24 13:11:40 -04:00
parent 645e9d6326
commit 8142fec545
1 changed files with 11 additions and 2 deletions

View File

@ -263,9 +263,18 @@ def test_simple_context(
except error_parent:
pass
except BaseExceptionGroup as beg:
# XXX: on windows it seems we may have to expect the group error
# XXX: on windows — and under `trio>=0.33`'s strict
# exception-groups, where a lone `error_parent` now
# arrives wrapped in a 1-exc `ExceptionGroup` rather than
# collapsed to the bare exc — accept either the
# `error_parent` nested in the group OR a cancel-only
# (multi-cancelled) group.
from tractor.trionics import is_multi_cancelled
assert is_multi_cancelled(beg)
assert (
is_multi_cancelled(beg)
or
beg.subgroup(error_parent) is not None
)
else:
trio.run(main)