forked from goodboy/tractor
Use `assert_before` more extensively
parent
6b8c193221
commit
0b4fc4fc47
|
@ -376,10 +376,11 @@ def test_multi_subactors(
|
||||||
spawn,
|
spawn,
|
||||||
ctlc: bool,
|
ctlc: bool,
|
||||||
):
|
):
|
||||||
"""
|
'''
|
||||||
Multiple subactors, both erroring and breakpointing as well as
|
Multiple subactors, both erroring and
|
||||||
a nested subactor erroring.
|
breakpointing as well as a nested subactor erroring.
|
||||||
"""
|
|
||||||
|
'''
|
||||||
child = spawn(r'multi_subactors')
|
child = spawn(r'multi_subactors')
|
||||||
|
|
||||||
# scan for the pdbpp prompt
|
# scan for the pdbpp prompt
|
||||||
|
@ -418,10 +419,10 @@ def test_multi_subactors(
|
||||||
# 2nd name_error failure
|
# 2nd name_error failure
|
||||||
child.expect(r"\(Pdb\+\+\)")
|
child.expect(r"\(Pdb\+\+\)")
|
||||||
|
|
||||||
# XXX: lol honestly no idea why CI is suck a cuck
|
# XXX: lol honestly no idea why CI is cuck but
|
||||||
from conftest import _ci_env
|
# seems like this likely falls into our unhandled nested
|
||||||
name = 'name_error' if _ci_env else 'name_error_1'
|
# case and isn't working in that env due to raciness..
|
||||||
|
name = 'name_error' if ctlc else 'name_error_1'
|
||||||
assert_before(child, [
|
assert_before(child, [
|
||||||
f"Attaching to pdb in crashed actor: ('{name}'",
|
f"Attaching to pdb in crashed actor: ('{name}'",
|
||||||
"NameError",
|
"NameError",
|
||||||
|
@ -455,11 +456,11 @@ def test_multi_subactors(
|
||||||
do_ctlc(child)
|
do_ctlc(child)
|
||||||
|
|
||||||
# 2nd depth nursery should trigger
|
# 2nd depth nursery should trigger
|
||||||
# child.sendline('c')
|
if not ctlc:
|
||||||
# child.expect(r"\(Pdb\+\+\)")
|
assert_before(child, [
|
||||||
# before = str(child.before.decode())
|
spawn_err,
|
||||||
assert spawn_err in before
|
"RemoteActorError: ('name_error_1'",
|
||||||
assert "RemoteActorError: ('name_error_1'" in before
|
])
|
||||||
|
|
||||||
# now run some "continues" to show re-entries
|
# now run some "continues" to show re-entries
|
||||||
for _ in range(5):
|
for _ in range(5):
|
||||||
|
@ -471,14 +472,17 @@ def test_multi_subactors(
|
||||||
child.expect(r"\(Pdb\+\+\)")
|
child.expect(r"\(Pdb\+\+\)")
|
||||||
before = str(child.before.decode())
|
before = str(child.before.decode())
|
||||||
|
|
||||||
|
assert_before(child, [
|
||||||
# debugger attaches to root
|
# debugger attaches to root
|
||||||
assert "Attaching to pdb in crashed actor: ('root'" in before
|
"Attaching to pdb in crashed actor: ('root'",
|
||||||
|
|
||||||
# expect a multierror with exceptions for each sub-actor
|
# expect a multierror with exceptions for each sub-actor
|
||||||
assert "RemoteActorError: ('breakpoint_forever'" in before
|
"RemoteActorError: ('breakpoint_forever'",
|
||||||
assert "RemoteActorError: ('name_error'" in before
|
"RemoteActorError: ('name_error'",
|
||||||
assert "RemoteActorError: ('spawn_error'" in before
|
"RemoteActorError: ('spawn_error'",
|
||||||
assert "RemoteActorError: ('name_error_1'" in before
|
"RemoteActorError: ('name_error_1'",
|
||||||
assert 'bdb.BdbQuit' in before
|
'bdb.BdbQuit',
|
||||||
|
])
|
||||||
|
|
||||||
if ctlc:
|
if ctlc:
|
||||||
do_ctlc(child)
|
do_ctlc(child)
|
||||||
|
@ -486,13 +490,15 @@ def test_multi_subactors(
|
||||||
# process should exit
|
# process should exit
|
||||||
child.sendline('c')
|
child.sendline('c')
|
||||||
child.expect(pexpect.EOF)
|
child.expect(pexpect.EOF)
|
||||||
|
|
||||||
# repeat of previous multierror for final output
|
# repeat of previous multierror for final output
|
||||||
before = str(child.before.decode())
|
assert_before(child, [
|
||||||
assert "RemoteActorError: ('breakpoint_forever'" in before
|
"RemoteActorError: ('breakpoint_forever'",
|
||||||
assert "RemoteActorError: ('name_error'" in before
|
"RemoteActorError: ('name_error'",
|
||||||
assert "RemoteActorError: ('spawn_error'" in before
|
"RemoteActorError: ('spawn_error'",
|
||||||
assert "RemoteActorError: ('name_error_1'" in before
|
"RemoteActorError: ('name_error_1'",
|
||||||
assert 'bdb.BdbQuit' in before
|
'bdb.BdbQuit',
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
def test_multi_daemon_subactors(
|
def test_multi_daemon_subactors(
|
||||||
|
@ -608,7 +614,6 @@ def test_multi_subactors_root_errors(
|
||||||
if ctlc:
|
if ctlc:
|
||||||
do_ctlc(child)
|
do_ctlc(child)
|
||||||
|
|
||||||
# continue again to catch 2nd name error from
|
|
||||||
# continue again to catch 2nd name error from
|
# continue again to catch 2nd name error from
|
||||||
# actor 'name_error_1' (which is 2nd depth).
|
# actor 'name_error_1' (which is 2nd depth).
|
||||||
child.sendline('c')
|
child.sendline('c')
|
||||||
|
@ -617,31 +622,38 @@ def test_multi_subactors_root_errors(
|
||||||
except TIMEOUT:
|
except TIMEOUT:
|
||||||
child.sendline('')
|
child.sendline('')
|
||||||
|
|
||||||
before = str(child.before.decode())
|
# XXX: lol honestly no idea why CI is cuck but
|
||||||
assert "Attaching to pdb in crashed actor: ('name_error_1'" in before
|
# seems like this likely falls into our unhandled nested
|
||||||
assert "NameError" in before
|
# case and isn't working in that env due to raciness..
|
||||||
|
name = 'name_error' if ctlc else 'name_error_1'
|
||||||
|
assert_before(child, [
|
||||||
|
f"Attaching to pdb in crashed actor: ('{name}'",
|
||||||
|
"NameError",
|
||||||
|
])
|
||||||
|
|
||||||
if ctlc:
|
if ctlc:
|
||||||
do_ctlc(child)
|
do_ctlc(child)
|
||||||
|
|
||||||
child.sendline('c')
|
child.sendline('c')
|
||||||
child.expect(r"\(Pdb\+\+\)")
|
child.expect(r"\(Pdb\+\+\)")
|
||||||
before = str(child.before.decode())
|
assert_before(child, [
|
||||||
assert "Attaching to pdb in crashed actor: ('spawn_error'" in before
|
"Attaching to pdb in crashed actor: ('spawn_error'",
|
||||||
# boxed error from previous step
|
# boxed error from previous step
|
||||||
assert "RemoteActorError: ('name_error_1'" in before
|
"RemoteActorError: ('name_error_1'",
|
||||||
assert "NameError" in before
|
"NameError",
|
||||||
|
])
|
||||||
|
|
||||||
if ctlc:
|
if ctlc:
|
||||||
do_ctlc(child)
|
do_ctlc(child)
|
||||||
|
|
||||||
child.sendline('c')
|
child.sendline('c')
|
||||||
child.expect(r"\(Pdb\+\+\)")
|
child.expect(r"\(Pdb\+\+\)")
|
||||||
before = str(child.before.decode())
|
assert_before(child, [
|
||||||
assert "Attaching to pdb in crashed actor: ('root'" in before
|
"Attaching to pdb in crashed actor: ('root'",
|
||||||
# boxed error from first level failure
|
# boxed error from previous step
|
||||||
assert "RemoteActorError: ('name_error'" in before
|
"RemoteActorError: ('name_error'",
|
||||||
assert "NameError" in before
|
"NameError",
|
||||||
|
])
|
||||||
|
|
||||||
# warnings assert we probably don't need
|
# warnings assert we probably don't need
|
||||||
# assert "Cancelling nursery in ('spawn_error'," in before
|
# assert "Cancelling nursery in ('spawn_error'," in before
|
||||||
|
|
Loading…
Reference in New Issue