tractor/tests
Tyler Goodlet cfcbc4da01 Add test for `modden` sub-spawner-server hangs on cancel
As per a lot of the recent refinements to `Context` cancellation, add
a new test case to replicate the original hang-on-cancel found with
`modden` when using a client actor to spawn a subactor in some other
tree where despite `Context.cancel()` being called the requesting client
would hang on the opened context with the server.

The specific scenario added here is to have,
- root actor spawns 2 children: a client and a spawn server.
- the spawn server opens with a spawn-request serve loop and begins to
  wait for the client.
- client spawns and connects to the sibling spawn server, requests to
  spawn a sub-actor, the "little bro", connects to it then does some
  echo streaming, cancels the request with it's sibling (the spawn
  server) which should in turn cancel the root's-grandchild and result
  in a cancel-ack back to the client's `.open_context()`.
- root ensures that it can also connect to the grandchild (little bro),
  do the same echo streaming, then ensure everything tears down
  correctly after cancelling all the children.

More refinements to come here obvi in the specific cancellation
semantics and possibly causes.

Also tweaks the other tests in suite to use the new `Context` properties
recently introduced and similarly updated in the previous patch to the
ctx-semantics suite.
2025-03-14 22:18:31 -04:00
..
conftest.py Handle `mp` spawn method cases in test suite 2023-01-29 14:55:02 -05:00
test_2way.py Move context-streaming operational tests into one mod 2021-12-06 16:45:44 -05:00
test_advanced_faults.py Add a simplified zombie lord specific process reaping test 2023-01-29 14:55:02 -05:00
test_advanced_streaming.py Call `actor.cancel(None)` from root to avoid mismatch with (any future) meth sig changes 2025-03-14 22:18:31 -04:00
test_cancellation.py Make `@context`-cancelled tests more pedantic 2025-03-14 22:18:31 -04:00
test_child_manages_service_nursery.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_clustering.py Fix cluster test to use `allow_overruns` 2023-05-15 10:00:45 -04:00
test_context_stream_semantics.py Make `@context`-cancelled tests more pedantic 2025-03-14 22:18:31 -04:00
test_debugger.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_discovery.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_docs_examples.py Skip `advanced_faults/` subset in docs examples tests 2023-01-29 14:55:02 -05:00
test_infected_asyncio.py Fix `Context.result()` call to be in runtime scope 2025-03-14 13:44:09 -04:00
test_inter_peer_cancellation.py Add test for `modden` sub-spawner-server hangs on cancel 2025-03-14 22:18:31 -04:00
test_legacy_one_way_streaming.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_local.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_multi_program.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_pubsub.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_resource_cache.py Bump timeout on resource cache test a bitty bit. 2025-03-14 14:14:53 -04:00
test_rpc.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_runtime.py Tolerate eg in runtime test teardown 2022-10-14 19:42:23 -04:00
test_spawning.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_task_broadcasting.py Port all tests to new `reg_addr` fixture name 2025-03-14 13:42:15 -04:00
test_trioisms.py Add a new "trioisms" test mod for tracking `trio` wishlist behaviour 2022-04-12 13:05:56 -04:00