mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2025-12-31 20:36:24 +00:00
reorg test structure to match tox and CI jobs, drop bumpversion for bump-my-version and move config to pyproject.toml, fix docs building
This commit is contained in:
81
tests/interop/test_net_stream.py
Normal file
81
tests/interop/test_net_stream.py
Normal file
@ -0,0 +1,81 @@
|
||||
import pytest
|
||||
import trio
|
||||
|
||||
from libp2p.network.stream.exceptions import (
|
||||
StreamClosed,
|
||||
StreamEOF,
|
||||
StreamReset,
|
||||
)
|
||||
from libp2p.tools.constants import (
|
||||
MAX_READ_LEN,
|
||||
)
|
||||
|
||||
DATA = b"data"
|
||||
|
||||
|
||||
@pytest.mark.trio
|
||||
async def test_net_stream_read_write(py_to_daemon_stream_pair, p2pds):
|
||||
stream_py, stream_daemon = py_to_daemon_stream_pair
|
||||
assert (
|
||||
stream_py.protocol_id is not None
|
||||
and stream_py.protocol_id == stream_daemon.stream_info.proto
|
||||
)
|
||||
await stream_py.write(DATA)
|
||||
assert (await stream_daemon.read(MAX_READ_LEN)) == DATA
|
||||
|
||||
|
||||
@pytest.mark.trio
|
||||
async def test_net_stream_read_after_remote_closed(py_to_daemon_stream_pair, p2pds):
|
||||
stream_py, stream_daemon = py_to_daemon_stream_pair
|
||||
await stream_daemon.write(DATA)
|
||||
await stream_daemon.close()
|
||||
await trio.sleep(0.01)
|
||||
assert (await stream_py.read(MAX_READ_LEN)) == DATA
|
||||
# EOF
|
||||
with pytest.raises(StreamEOF):
|
||||
await stream_py.read(MAX_READ_LEN)
|
||||
|
||||
|
||||
@pytest.mark.trio
|
||||
async def test_net_stream_read_after_local_reset(py_to_daemon_stream_pair, p2pds):
|
||||
stream_py, _ = py_to_daemon_stream_pair
|
||||
await stream_py.reset()
|
||||
with pytest.raises(StreamReset):
|
||||
await stream_py.read(MAX_READ_LEN)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("is_to_fail_daemon_stream", (True,))
|
||||
@pytest.mark.trio
|
||||
@pytest.mark.skip
|
||||
async def test_net_stream_read_after_remote_reset(py_to_daemon_stream_pair, p2pds):
|
||||
stream_py, _ = py_to_daemon_stream_pair
|
||||
await trio.sleep(0.01)
|
||||
with pytest.raises(StreamReset):
|
||||
await stream_py.read(MAX_READ_LEN)
|
||||
|
||||
|
||||
@pytest.mark.trio
|
||||
async def test_net_stream_write_after_local_closed(py_to_daemon_stream_pair, p2pds):
|
||||
stream_py, _ = py_to_daemon_stream_pair
|
||||
await stream_py.write(DATA)
|
||||
await stream_py.close()
|
||||
with pytest.raises(StreamClosed):
|
||||
await stream_py.write(DATA)
|
||||
|
||||
|
||||
@pytest.mark.trio
|
||||
async def test_net_stream_write_after_local_reset(py_to_daemon_stream_pair, p2pds):
|
||||
stream_py, stream_daemon = py_to_daemon_stream_pair
|
||||
await stream_py.reset()
|
||||
with pytest.raises(StreamClosed):
|
||||
await stream_py.write(DATA)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("is_to_fail_daemon_stream", (True,))
|
||||
@pytest.mark.trio
|
||||
@pytest.mark.skip
|
||||
async def test_net_stream_write_after_remote_reset(py_to_daemon_stream_pair, p2pds):
|
||||
stream_py, _ = py_to_daemon_stream_pair
|
||||
await trio.sleep(0.01)
|
||||
with pytest.raises(StreamClosed):
|
||||
await stream_py.write(DATA)
|
||||
Reference in New Issue
Block a user