Adjusts advanced fault tests to match new `TransportClosed` semantics
parent
31207f92ee
commit
e6ccfce751
|
@ -91,7 +91,8 @@ def test_ipc_channel_break_during_stream(
|
||||||
|
|
||||||
# non-`trio` spawners should never hit the hang condition that
|
# non-`trio` spawners should never hit the hang condition that
|
||||||
# requires the user to do ctl-c to cancel the actor tree.
|
# requires the user to do ctl-c to cancel the actor tree.
|
||||||
expect_final_exc = trio.ClosedResourceError
|
# expect_final_exc = trio.ClosedResourceError
|
||||||
|
expect_final_exc = tractor.TransportClosed
|
||||||
|
|
||||||
mod: ModuleType = import_path(
|
mod: ModuleType = import_path(
|
||||||
examples_dir() / 'advanced_faults'
|
examples_dir() / 'advanced_faults'
|
||||||
|
@ -157,7 +158,7 @@ def test_ipc_channel_break_during_stream(
|
||||||
if pre_aclose_msgstream:
|
if pre_aclose_msgstream:
|
||||||
expect_final_exc = KeyboardInterrupt
|
expect_final_exc = KeyboardInterrupt
|
||||||
|
|
||||||
# NOTE when the parent IPC side dies (even if the child's does as well
|
# NOTE when the parent IPC side dies (even if the child does as well
|
||||||
# but the child fails BEFORE the parent) we always expect the
|
# but the child fails BEFORE the parent) we always expect the
|
||||||
# IPC layer to raise a closed-resource, NEVER do we expect
|
# IPC layer to raise a closed-resource, NEVER do we expect
|
||||||
# a stop msg since the parent-side ctx apis will error out
|
# a stop msg since the parent-side ctx apis will error out
|
||||||
|
@ -169,7 +170,8 @@ def test_ipc_channel_break_during_stream(
|
||||||
and
|
and
|
||||||
ipc_break['break_child_ipc_after'] is False
|
ipc_break['break_child_ipc_after'] is False
|
||||||
):
|
):
|
||||||
expect_final_exc = trio.ClosedResourceError
|
# expect_final_exc = trio.ClosedResourceError
|
||||||
|
expect_final_exc = tractor.TransportClosed
|
||||||
|
|
||||||
# BOTH but, PARENT breaks FIRST
|
# BOTH but, PARENT breaks FIRST
|
||||||
elif (
|
elif (
|
||||||
|
@ -180,7 +182,8 @@ def test_ipc_channel_break_during_stream(
|
||||||
ipc_break['break_parent_ipc_after']
|
ipc_break['break_parent_ipc_after']
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
expect_final_exc = trio.ClosedResourceError
|
# expect_final_exc = trio.ClosedResourceError
|
||||||
|
expect_final_exc = tractor.TransportClosed
|
||||||
|
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
expected_exception=(
|
expected_exception=(
|
||||||
|
@ -199,8 +202,8 @@ def test_ipc_channel_break_during_stream(
|
||||||
**ipc_break,
|
**ipc_break,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
except KeyboardInterrupt as kbi:
|
except KeyboardInterrupt as _kbi:
|
||||||
_err = kbi
|
kbi = _kbi
|
||||||
if expect_final_exc is not KeyboardInterrupt:
|
if expect_final_exc is not KeyboardInterrupt:
|
||||||
pytest.fail(
|
pytest.fail(
|
||||||
'Rxed unexpected KBI !?\n'
|
'Rxed unexpected KBI !?\n'
|
||||||
|
@ -209,6 +212,21 @@ def test_ipc_channel_break_during_stream(
|
||||||
|
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
except tractor.TransportClosed as _tc:
|
||||||
|
tc = _tc
|
||||||
|
if expect_final_exc is KeyboardInterrupt:
|
||||||
|
pytest.fail(
|
||||||
|
'Unexpected transport failure !?\n'
|
||||||
|
f'{repr(tc)}'
|
||||||
|
)
|
||||||
|
cause: Exception = tc.__cause__
|
||||||
|
assert (
|
||||||
|
type(cause) is trio.ClosedResourceError
|
||||||
|
and
|
||||||
|
cause.args[0] == 'another task closed this fd'
|
||||||
|
)
|
||||||
|
raise
|
||||||
|
|
||||||
# get raw instance from pytest wrapper
|
# get raw instance from pytest wrapper
|
||||||
value = excinfo.value
|
value = excinfo.value
|
||||||
if isinstance(value, ExceptionGroup):
|
if isinstance(value, ExceptionGroup):
|
||||||
|
|
Loading…
Reference in New Issue