You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
import pytest
|
|
|
|
import trio
|
|
from trio.testing._fake_net import FakeNet
|
|
|
|
|
|
def fn():
|
|
fn = FakeNet()
|
|
fn.enable()
|
|
return fn
|
|
|
|
|
|
async def test_basic_udp():
|
|
fn()
|
|
s1 = trio.socket.socket(type=trio.socket.SOCK_DGRAM)
|
|
s2 = trio.socket.socket(type=trio.socket.SOCK_DGRAM)
|
|
|
|
await s1.bind(("127.0.0.1", 0))
|
|
ip, port = s1.getsockname()
|
|
assert ip == "127.0.0.1"
|
|
assert port != 0
|
|
await s2.sendto(b"xyz", s1.getsockname())
|
|
data, addr = await s1.recvfrom(10)
|
|
assert data == b"xyz"
|
|
assert addr == s2.getsockname()
|
|
await s1.sendto(b"abc", s2.getsockname())
|
|
data, addr = await s2.recvfrom(10)
|
|
assert data == b"abc"
|
|
assert addr == s1.getsockname()
|
|
|
|
|
|
async def test_msg_trunc():
|
|
fn()
|
|
s1 = trio.socket.socket(type=trio.socket.SOCK_DGRAM)
|
|
s2 = trio.socket.socket(type=trio.socket.SOCK_DGRAM)
|
|
await s1.bind(("127.0.0.1", 0))
|
|
await s2.sendto(b"xyz", s1.getsockname())
|
|
data, addr = await s1.recvfrom(10)
|
|
|
|
|
|
async def test_basic_tcp():
|
|
fn()
|
|
with pytest.raises(NotImplementedError):
|
|
trio.socket.socket()
|