From e86b5d4fd06f41a77dac4ac53c3948f7c30f3b7f Mon Sep 17 00:00:00 2001 From: goodboy Date: Wed, 24 Jun 2026 13:11:40 -0400 Subject: [PATCH] Fix `test_simple_context` for `trio>=0.33` groups MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- tests/test_context_stream_semantics.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tests/test_context_stream_semantics.py b/tests/test_context_stream_semantics.py index 3f5f2cee..4e23dcae 100644 --- a/tests/test_context_stream_semantics.py +++ b/tests/test_context_stream_semantics.py @@ -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)