tractor/tests
Gud Boi b3e07bd569 Fix swallowed `TransportClosed` on ctx scope exit
EOF-driven cancellation can be absorbed by the ctx nursery before
teardown sees a disconnected channel and skips its recorded error.
Route an unfinished transport fault through `wait_for_result()` so
it raises the original error without waiting on broken IPC or
manufacturing a cancellation requester.

Share `ContextStatus._outcome_is_unfinished()` between EOF
notification and ctx teardown. Both buffered `Return` msgs and
decoded falsey results remain completed outcomes; notification
requires no existing error while teardown raises the recorded one.

Deats,
- Reconcile the close example and advanced-fault matrix with prompt
  fault propagation, preserving break order and pre-`Stop` cases.
- Check exception leaves, socket causes, cancellation provenance,
  and post-close send/receive error precedence and identity. Keep
  synthetic Ctrl-C for the healthy no-break cases.
- Cover buffered/consumed `None`, `False`, `0`, and empty-string
  results across EOF, including final value and type preservation.
- Add `assert_child_reaped()` for retained process handles. Check
  both backend completion and PID disappearance without cleanup.

(this patch was generated in some part by `opencode` using
`gpt-6-astra` (`openai`))
2026-10-30 13:13:37 -04:00
..
devx Mv task UID formatting into `devx.pformat` 2026-10-21 11:29:32 -04:00
discovery Normalize `Registrar.delete_addr()` declarations 2026-10-04 20:37:47 -04:00
ipc Wrap default `Server.listen_on()` addrs 2026-09-01 23:07:53 -04:00
msg Drop deprecated `Context.result()` wrapper 2026-10-30 13:13:37 -04:00
trionics Assert cancellation at the startup boundary 2026-08-12 15:45:30 -04:00
__init__.py Add `tests/__init__.py` for `.conftest` imports 2025-03-20 20:53:54 -04:00
_helpers.py Strengthen `to_actor` API contract tests 2026-08-25 13:44:50 -04:00
conftest.py Fix uds `get_random` reaper-regex break (+2 nits) 2026-06-29 18:51:26 -04:00
test_2way.py Tidy a typing-typo, add explicit `ids=` for paramed suites 2026-03-09 19:35:47 -04:00
test_advanced_faults.py Fix swallowed `TransportClosed` on ctx scope exit 2026-10-30 13:13:37 -04:00
test_advanced_streaming.py Wait for active pub/sub cancellation targets 2026-08-25 20:23:53 -04:00
test_aio_channel_exit.py Avoid `raise None` after successful `asyncio` exit 2026-10-30 13:10:53 -04:00
test_cancel_soon.py Keep `Actor.cancel_soon()` in the root nursery 2026-10-30 13:13:37 -04:00
test_cancellation.py Restore high-fanout startup cancellation stress 2026-08-26 17:00:44 -04:00
test_child_manages_service_nursery.py Name every `ActorNursery` binding `an` in tests/examples 2026-08-25 19:19:28 -04:00
test_clustering.py Add `cpu_perf_headroom()` for throttle-aware deadlines 2026-06-29 18:08:50 -04:00
test_context_final_return_disconnect.py Contain `@context` final-result disconnects 2026-10-21 14:23:33 -04:00
test_context_status.py Test `ContextStatus` ownership and cancel reasons 2026-10-30 13:13:37 -04:00
test_context_stream_semantics.py Drop deprecated `Context.result()` wrapper 2026-10-30 13:13:37 -04:00
test_docs_examples.py Document stable macOS UDS operation 2026-08-14 10:37:19 -04:00
test_infected_asyncio.py Drop deprecated `Context.result()` wrapper 2026-10-30 13:13:37 -04:00
test_inter_peer_cancellation.py Drop deprecated `Context.result()` wrapper 2026-10-30 13:13:37 -04:00
test_ipc_eof.py Fix swallowed `TransportClosed` on ctx scope exit 2026-10-30 13:13:37 -04:00
test_lazy_imports.py Guard the cold import latency budget 2026-08-13 02:35:07 -04:00
test_legacy_one_way_streaming.py Use `cpu_perf_headroom()` for timing-test deadlines 2026-06-29 18:08:50 -04:00
test_local.py Emit canonical tagged addresses 2026-09-01 15:47:28 -04:00
test_log_sys.py Fix built-in level names in `at_least_level()` 2026-10-16 20:31:49 -04:00
test_oob_cancellation.py Drop deprecated `Context.result()` wrapper 2026-10-30 13:13:37 -04:00
test_pubsub.py Propagate unexpected `@pub` subscriber errors 2026-08-25 20:38:57 -04:00
test_reg_err_types.py Drop stale `.cancel()`, fix docstring typo in tests 2026-04-02 18:21:19 -04:00
test_remote_exc_relay.py Adjust ep-masking-suite for the real-use-case 2025-07-15 07:23:21 -04:00
test_resource_cache.py Wait for ctx exit in `maybe_open_context()` 2026-08-03 23:45:42 -04:00
test_ringbuf.py Remove `run_in_actor()` + the ria reap cluster 2026-08-25 19:16:32 -04:00
test_root_infect_asyncio.py Skip `infect_asyncio` tests on Windows 2026-08-14 23:12:02 -04:00
test_root_runtime.py Update tests+examples imports for new subpkgs 2026-04-02 17:59:13 -04:00
test_rpc.py Bind named `to_actor.run()` inputs with partials 2026-08-25 19:20:43 -04:00
test_runtime.py Bind named `to_actor.run()` inputs with partials 2026-08-25 19:20:43 -04:00
test_shm.py Drop deprecated `Context.result()` wrapper 2026-10-30 13:13:37 -04:00
test_spawning.py Clarify recursive one-shot spawning test 2026-08-26 18:27:11 -04:00
test_task_broadcasting.py Reject concurrent `BroadcastReceiver.receive()` calls 2026-08-27 22:11:55 -04:00
test_to_actor.py Remove `run_in_actor()` + the ria reap cluster 2026-08-25 19:16:32 -04:00
test_trioisms.py Tweaks from copilot, type fix, typos, language. 2025-09-11 10:01:25 -04:00