Tyler Goodlet
af6c325072
Bump up legacy streaming timeout a smidgen
2023-01-29 14:55:02 -05:00
Tyler Goodlet
3967c0ed9e
Add a simplified zombie lord specific process reaping test
2023-01-29 14:55:02 -05:00
Tyler Goodlet
e34823aab4
Add parent vs. child cancels first cases
2023-01-29 14:55:02 -05:00
Tyler Goodlet
6c35ba2cb6
Add IPC breakage on both parent and child side
...
With the new fancy `_pytest.pathlib.import_path()` we can do real
parametrization of the example-script-module code and thus configure
whether the child, parent, or both silently break the IPC connection.
Parametrize the test for all the above mentioned cases as well as the
case where the IPC never breaks but we still simulate the user hammering
ctl-c / SIGINT to terminate the actor tree. Adjust expected errors based
on each case and heavily document each of these.
2023-01-29 14:55:02 -05:00
Tyler Goodlet
3a0817ff55
Skip `advanced_faults/` subset in docs examples tests
2023-01-29 14:55:02 -05:00
Tyler Goodlet
7fddb4416b
Handle `mp` spawn method cases in test suite
2023-01-29 14:55:02 -05:00
Tyler Goodlet
1d92f2552a
Adjust other examples tests to expect `pathlib` objects
2023-01-29 14:55:02 -05:00
Tyler Goodlet
4f8586a928
Wrap ex in new test, change dir helpers to use `pathlib.Path`
2023-01-29 14:55:02 -05:00
Tyler Goodlet
7394a187e0
Name one-way streaming (con generators) what it is
2023-01-29 14:55:02 -05:00
Tyler Goodlet
606efa5bb7
Adjust daemon command to use new `registry_addr`
2023-01-26 16:00:08 -05:00
Tyler Goodlet
6d124db7c9
Never run ctlc-with-intermediary-actor cases locally either
2023-01-26 12:44:13 -05:00
Tyler Goodlet
48f6d514ef
Handle earlier name error crash in debug test
2022-12-12 14:05:32 -05:00
Tyler Goodlet
d8e48e29ba
Add `mngrs=(<gen_comprehension>)` test
2022-12-11 19:56:01 -05:00
Tyler Goodlet
c47575997a
Expand nested case to include error prop and breakpointing
2022-10-14 19:42:23 -04:00
Tyler Goodlet
0a1bf8e57d
Tolerate eg in runtime test teardown
2022-10-14 19:42:23 -04:00
Tyler Goodlet
c0dd5d7ffc
Adjust multi-daemon test to be more deterministic
2022-10-14 19:42:23 -04:00
Tyler Goodlet
347591c348
Expect egs in tests which retreive portal results
2022-10-14 19:42:23 -04:00
Tyler Goodlet
c646c79a82
Adjust root-errors debug tests for blocking and egs
2022-10-14 18:18:01 -04:00
Tyler Goodlet
0f523b65fb
Change cancel test over the exception group
2022-10-14 18:16:51 -04:00
Tyler Goodlet
b15e4ed9ce
Adjust "no arbiter" test for new runtime defaults
...
Turns out this test was being silently ignored due to incorrect usage of
sync opening of our `.open_nursery()` block (with a `with` not `async
with`) and thus was an noop XD
Instead this fixes the test to call a `tractor` discovery built-in
without starting the runtime (which is now done implicitly when a user
opens a nursery) which should result in the prior expected outcome,
a `RuntimeError`.
2022-10-12 12:46:20 -04:00
Tyler Goodlet
30ea7a06b0
Avoid inf nursery hang by reversing `async with` ordering
2022-10-11 20:00:05 -04:00
Tyler Goodlet
3398153c52
Add timeout around `trio`-callee-task
2022-10-11 20:00:05 -04:00
Tyler Goodlet
93b9d2dc2d
Drop dynamic backend-spawn-method test generation
2022-10-09 18:29:50 -04:00
Tyler Goodlet
4d808757a6
Fix start method name in logging propagation test
2022-10-09 18:22:55 -04:00
Tyler Goodlet
2c20b2d64f
Fix import to load from `conftest.py`
2022-10-09 18:03:17 -04:00
Tyler Goodlet
d24fae8381
'Rename mp spawn methods to have a `'mp_'` prefix'
2022-10-09 17:54:55 -04:00
Tyler Goodlet
5ab98513b7
Move `@tractor_test` into `conftest.py`
2022-10-09 17:14:20 -04:00
Tyler Goodlet
e609183242
Expose lifetime stack as class attr, add base test suite
2022-09-15 23:50:15 -04:00
Tyler Goodlet
10eeda2d2b
Use built-ins for all data-structure-type annotations
2022-09-15 23:41:28 -04:00
Tyler Goodlet
ad19bf2cf1
Remove `tractor.run()` once and for all
...
It's been deprecated for a while now and all docs and tests have been
changed.
Closes #183
2022-09-15 23:41:28 -04:00
Tyler Goodlet
ba4d4e9af3
Change test import
2022-09-15 23:41:28 -04:00
Tyler Goodlet
2d387f2610
Add in issue link for nested cases
2022-08-02 12:17:34 -04:00
Tyler Goodlet
8115759984
Mark final nested-actor debugger test
2022-08-02 12:17:34 -04:00
Tyler Goodlet
fa4388835c
Add an expect wrapper, use in hanging CI test
2022-08-02 12:17:34 -04:00
Tyler Goodlet
54de72d8df
Loosen timeout on nested child re-locking
2022-08-02 12:17:34 -04:00
Tyler Goodlet
e4771eec16
Go back to skipping since xfail is wack
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a9aaee9dbd
Use xfails for nested cases, revert prompt expect
2022-08-02 12:17:28 -04:00
Tyler Goodlet
aca9a6b99a
Try just skipping nested actor tests in CI
2022-08-02 12:17:28 -04:00
Tyler Goodlet
8896ba2bf8
Use `assert_before` more extensively
2022-08-02 12:17:28 -04:00
Tyler Goodlet
87b2ccb86a
Try less times for EOF
2022-08-02 12:17:28 -04:00
Tyler Goodlet
08cf03cd9e
Handle missing prompt render case?
2022-08-02 12:17:28 -04:00
Tyler Goodlet
6f01c78122
Disable `pygments` highlighting on ctlc tests
2022-08-02 12:17:28 -04:00
Tyler Goodlet
457499bc2e
Avoid infinite wait for EOF
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a4bac135d9
Use `pytest-timeout` plug to try and prevent CI hang
2022-08-02 12:17:28 -04:00
Tyler Goodlet
20c660faa7
Add timeout on spawn error msg check
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a4538a3d84
Drop ctlc tests on Py3.9...
...
After many tries I just don't think it's worth it to make the tests work
since the repl UX in `pdbpp` is so unreliable in the latest release and
honestly we're trying to go 3.10+ ASAP.
Further,
- entirely drop the pattern matching inside the `do_ctlc()` for now.
- add a `subactor_error` parametrization that catches a case that
previously caused a hang (when you use 'next' immediately after the
first crash/debug lock (the fix was pushed just before this commit).
2022-08-02 12:17:28 -04:00
Tyler Goodlet
cb0c47c42a
Try disabling prompt expect in ctrlc cases
2022-08-02 12:17:28 -04:00
Tyler Goodlet
808d7ae2c6
Add timeout guard around caller side context open
2022-08-02 12:17:28 -04:00
Tyler Goodlet
4779badd96
Add before assert helper and print console bytes on fail
2022-08-02 12:17:28 -04:00
Tyler Goodlet
6bdcbdb96f
Do child decode on `do_ctlc` exit?
2022-08-02 12:17:28 -04:00
Tyler Goodlet
adbebd3f06
Add ctl-c to remaining tests, only expect prompt in non-CI
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a2e90194bc
Add ctl-c case to `subactor_breakpoint` example test
2022-08-02 12:17:28 -04:00
Tyler Goodlet
617d57dc35
Disable ctl-c prompt checks again
2022-08-02 12:17:28 -04:00
Tyler Goodlet
dadd5e6148
Add back prompt expect via flag
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a72350118c
Test: drop expect prompt
2022-08-02 12:17:28 -04:00
Tyler Goodlet
70ad0f6b8e
Add longer delays around ctl-c loop, don't expect longlist
2022-08-02 12:17:28 -04:00
Tyler Goodlet
56b30a9a53
Add sleep around ctl-c iteration loop
2022-08-02 12:17:27 -04:00
Tyler Goodlet
64909e676e
Fix loglevel in subactor test; actually pass the level XD
2022-08-02 12:17:27 -04:00
Tyler Goodlet
bd7d507153
Guard against `asyncio` cancelled logged to console
2022-08-02 12:17:16 -04:00
Tyler Goodlet
9bc38cbf04
Add slight delay 2nd ctlc round..
2022-08-02 12:17:06 -04:00
Tyler Goodlet
439d320a25
Add basic ctl-c testing cases to suite
2022-08-02 12:16:58 -04:00
Tyler Goodlet
2a61aa099b
Move pydantic-click hang example to new dir, skip in test suite
2022-08-02 12:16:58 -04:00
Tyler Goodlet
05790a20c1
Slight lint fixes
2022-07-15 11:18:48 -04:00
Tyler Goodlet
ce01f6b21c
Increase timeout for CI/windows
2022-07-14 20:44:10 -04:00
Tyler Goodlet
38d03858d7
Fix `asyncio`-task-sync and error propagation
...
This fixes an previously undetected bug where if an
`.open_channel_from()` spawned task errored the error would not be
propagated to the `trio` side and instead would fail silently with
a console log error. What was most odd is that it only seems easy to
trigger when you put a slight task sleep before the error is raised
(:eyeroll:). This patch adds a few things to address this and just in
general improve iter-task lifetime syncing:
- add `LinkedTaskChannel._trio_exited: bool` a flag set from the `trio`
side when the channel block exits.
- add a `wait_on_aio_task: bool` flag to `translate_aio_errors` which
toggles whether to wait the `asyncio` task termination event on exit.
- cancel the `asyncio` task if the trio side has ended, when
`._trio_exited == True`.
- always close the `trio` mem channel when the task exits such that
the `asyncio` side can error on any next `.send()` call.
2022-07-14 16:35:41 -04:00
Tyler Goodlet
98de2fab31
Add context test that opens an inter-task-channel that errors
2022-07-14 16:13:12 -04:00
Tyler Goodlet
1c63bb6130
Sort fan out results before comparison in test
2022-04-12 19:49:36 -04:00
Tyler Goodlet
9c27858aaf
WIP prints to debug frickin windows
2022-04-12 16:48:50 -04:00
Tyler Goodlet
fa354ffe2b
Handle not all values pulled case
2022-04-12 15:51:06 -04:00
Tyler Goodlet
333fad8819
Facepalm: join nursery first to avoid channel-closed-too-early
2022-04-12 15:06:35 -04:00
Tyler Goodlet
90593611bb
Add test for `LinkedTaskChannel.subscribe()` fanout feature
2022-04-12 15:06:35 -04:00
Tyler Goodlet
9c43bb28f1
Add a new "trioisms" test mod for tracking `trio` wishlist behaviour
2022-04-12 13:05:56 -04:00
Tyler Goodlet
e45251db56
Simplify to form submitted to njs
2022-04-12 13:05:26 -04:00
Tyler Goodlet
faf751acac
WIP reproduce deadlock issue during error from piker
2022-04-12 13:04:46 -04:00
Tyler Goodlet
13c8300226
Add a sub-actor managed service nursery test scenario
2022-04-12 11:42:44 -04:00
Tyler Goodlet
c5acc3b969
Pack tuple keys as . delim strs in registry tests
2022-02-15 08:48:07 -05:00
Tyler Goodlet
ffe88de53b
Better idea: start a `tractor.experimental` subpkg
2022-01-29 14:03:55 -05:00
Tyler Goodlet
9ab04b1f6b
One more increase for py3.10
2022-01-21 12:20:06 -05:00
Tyler Goodlet
b3ff4b7804
Increase some timeouts for windows
2022-01-21 12:20:06 -05:00
Tyler Goodlet
d65912e1ae
Increase kbi delay in remote cancel test
2021-12-17 09:38:04 -05:00
Tyler Goodlet
9a2de90de6
Add mid stream echoserver "bail" cases
2021-12-17 09:38:04 -05:00
Tyler Goodlet
2b9b29eb71
Add an asyncio echo server test
2021-12-17 09:38:04 -05:00
Tyler Goodlet
c4b3bb354e
Port tests to handle our new `asyncio` cancelled type
2021-12-17 09:38:04 -05:00
Tyler Goodlet
ad2567dd73
Add first set of interloop streaming tests
2021-12-17 09:38:04 -05:00
Tyler Goodlet
d27ddb7bbb
Add a basic `open_channel_from()` streaming test
2021-12-17 09:38:04 -05:00
Tyler Goodlet
e815f766f6
Add a cancelled-from-remote-trio-task case
2021-12-17 09:38:04 -05:00
Tyler Goodlet
c19123b588
Add trio-cancels-anursery-cancels-aio test
2021-12-17 09:38:04 -05:00
Tyler Goodlet
04c0eda69d
Add an `asyncio`-internal cancel test
...
Verify that if the `asyncio` side task cancels (itself) that we raise
that `asyncio.CancelledError` on the `trio` side. In the case where
`trio` initiated the cancel whether or not the `asyncio` side ended up
raising `CancelledError` doesn't really matter to us as long as the far
task did indeed terminate.
2021-12-17 09:38:04 -05:00
Tyler Goodlet
56357242e9
Add a `Portal.cancel_actor()` test
2021-12-17 09:38:04 -05:00
Tyler Goodlet
299e4192b0
Plan asyncio test set
2021-12-17 09:38:04 -05:00
Tyler Goodlet
340effae11
Add initial infected asyncio error propagation test
2021-12-17 09:38:01 -05:00
Tyler Goodlet
916e27eedc
Adjust cancelled test to expect raised overrun error
2021-12-16 19:59:10 -05:00
Tyler Goodlet
9650b010de
Add a test for the real issue: error overriding
...
The underlying issue is actually that a nested `Context` which was
cancelled was overriding the local error that triggered that secondary's
context's cancellation in the first place XD. This test catches that
case.
Relates to https://github.com/pikers/piker/issues/244
2021-12-16 19:59:10 -05:00
Tyler Goodlet
c38d0f826e
Add an unserializable value causes error before started test
2021-12-16 19:59:10 -05:00
Tyler Goodlet
21a9c47496
Parameterize over cache keying methods: kwargs and "key"
2021-12-16 18:02:03 -05:00
Tyler Goodlet
67dc0d014c
Add basic `maybe_open_context()` caching test
2021-12-16 18:02:03 -05:00
Tyler Goodlet
9b1d8bf7b0
Of course, increase the timeout for windows..
2021-12-16 18:02:03 -05:00
Tyler Goodlet
f617da6ff1
Add timeout around test and prints for guidance
2021-12-16 18:02:03 -05:00
Tyler Goodlet
4a0252baf2
Add task-cached stream test
2021-12-16 18:02:03 -05:00
Tyler Goodlet
1652716574
Add timeout to streaming test
2021-12-16 16:19:09 -05:00