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
Tyler Goodlet
79d63585b0
Add a multi-task fan out streaming test
...
This actually catches a lot of bugs to do with stream termination and
``MsgStream.subscribe()`` usage where the underlying stream closes from
the producer side. When this passes the broadcaster logic will have to
ensure non-lossy fan out semantics and closure tracking.
2021-12-16 16:16:23 -05:00
Tyler Goodlet
a38a983225
Increase debugger poll delay back to prior value
...
If we make it too fast a nursery with debug mode children can cancel
too fast and causes some test failures. It's likely not a huge deal
anyway since the purpose of this poll/check is for human interaction
and the current delay isn't really that noticeable.
Decrease log levels in the debug module to avoid console noise when in
use. Toss in some more detailed comments around the new debugger lock
points.
2021-12-10 11:54:27 -05:00
Tyler Goodlet
4f411d6926
Add a per actor debug mode test
2021-12-09 17:53:31 -05:00
Tyler Goodlet
95c52436e5
Adjust multi-actor debugger test
...
It turns out recent improvements have made the debugger too good
so we need to just terminate the continue loop in this test when
we finally see the "spawn error" crash out because the breakpoint
forever case will literally, continue forever XD
2021-12-07 16:46:03 -05:00
Tyler Goodlet
e51c0e17a2
Properly set console logging in test suite
2021-12-07 13:17:10 -05:00
Tyler Goodlet
205e254072
Make test suite use default log level
2021-12-07 13:13:40 -05:00
Tyler Goodlet
703dee8a59
Add stream open before started, detailed semantics comment
2021-12-07 09:48:35 -05:00
Tyler Goodlet
df59071747
Bleh cast to list for `msgpack`
2021-12-06 18:07:14 -05:00
Tyler Goodlet
efba5229fc
Move context-streaming operational tests into one mod
2021-12-06 16:45:44 -05:00
Tyler Goodlet
fd6f4574ce
Rename test mod
2021-12-06 16:38:27 -05:00
Tyler Goodlet
52a2b7a5ed
Bump windows timeout again
2021-12-06 16:32:23 -05:00
Tyler Goodlet
63ecae70c4
Add a basic no-errors-when-backpressure stream test
2021-12-06 16:32:23 -05:00
Tyler Goodlet
a79cdc7b44
Make cancel case expect multi-error
2021-12-06 16:32:23 -05:00
Tyler Goodlet
58805a0430
Slight delay to avoid flaky bcast race
2021-12-06 12:17:37 -05:00
Tyler Goodlet
142083d81b
Don't cancel the context on overrun cases
2021-12-06 11:54:21 -05:00
Tyler Goodlet
f3432bd8fb
Enable bp on clustering test
2021-12-05 20:02:55 -05:00
Tyler Goodlet
7b9d410c4d
Adjust remaining examples and tests for non-backpressure default
2021-12-05 19:52:09 -05:00
Tyler Goodlet
2b05ffcc23
Add context stream overrun tests
2021-12-05 19:50:39 -05:00
Tyler Goodlet
872b24aedd
Prove we've fixed #265
2021-12-03 14:49:55 -05:00
Tyler Goodlet
3f6099f161
Add a double started error checking test
2021-12-03 10:08:55 -05:00