forked from goodboy/tractor
Wrap ex in new test, change dir helpers to use `pathlib.Path`
parent
fb9ff45745
commit
4f8586a928
|
@ -7,6 +7,7 @@ import os
|
||||||
import random
|
import random
|
||||||
import signal
|
import signal
|
||||||
import platform
|
import platform
|
||||||
|
import pathlib
|
||||||
import time
|
import time
|
||||||
import inspect
|
import inspect
|
||||||
from functools import partial, wraps
|
from functools import partial, wraps
|
||||||
|
@ -113,14 +114,21 @@ no_windows = pytest.mark.skipif(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def repodir():
|
def repodir() -> pathlib.Path:
|
||||||
"""Return the abspath to the repo directory.
|
'''
|
||||||
"""
|
Return the abspath to the repo directory.
|
||||||
dirname = os.path.dirname
|
|
||||||
dirpath = os.path.abspath(
|
'''
|
||||||
dirname(dirname(os.path.realpath(__file__)))
|
# 2 parents up to step up through tests/<repo_dir>
|
||||||
)
|
return pathlib.Path(__file__).parent.parent.absolute()
|
||||||
return dirpath
|
|
||||||
|
|
||||||
|
def examples_dir() -> pathlib.Path:
|
||||||
|
'''
|
||||||
|
Return the abspath to the examples directory as `pathlib.Path`.
|
||||||
|
|
||||||
|
'''
|
||||||
|
return repodir() / 'examples'
|
||||||
|
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
'''
|
||||||
|
Sketchy network blackoutz, ugly byzantine gens, puedes eschuchar la
|
||||||
|
cancelacion?..
|
||||||
|
|
||||||
|
'''
|
||||||
|
import pytest
|
||||||
|
from _pytest.pathlib import import_path
|
||||||
|
import trio
|
||||||
|
|
||||||
|
from conftest import (
|
||||||
|
examples_dir,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'debug_mode',
|
||||||
|
[False, True],
|
||||||
|
ids=['debug_mode', 'no_debug_mode'],
|
||||||
|
)
|
||||||
|
def test_child_breaks_ipc_channel_during_stream(
|
||||||
|
debug_mode: bool,
|
||||||
|
):
|
||||||
|
'''
|
||||||
|
Ensure we can (purposely) break IPC during streaming and it's still
|
||||||
|
possible for the (simulated) user to kill the actor tree using
|
||||||
|
SIGINT.
|
||||||
|
|
||||||
|
'''
|
||||||
|
mod = import_path(
|
||||||
|
examples_dir() / 'advanced_faults' / 'ipc_failure_during_stream.py',
|
||||||
|
root=examples_dir(),
|
||||||
|
)
|
||||||
|
|
||||||
|
with pytest.raises(KeyboardInterrupt):
|
||||||
|
trio.run(
|
||||||
|
mod.main,
|
||||||
|
debug_mode,
|
||||||
|
)
|
Loading…
Reference in New Issue