thanhnc19's picture
Upload folder using huggingface_hub
15b8951 verified
Raw
History Blame Contribute Delete
2.79 kB
import asyncio
import contextlib
import unittest
from aioice import mdns
from .utils import asynctest
@contextlib.asynccontextmanager
async def querier_and_responder():
querier = await mdns.create_mdns_protocol()
responder = await mdns.create_mdns_protocol()
try:
yield querier, responder
finally:
await querier.close()
await responder.close()
class MdnsTest(unittest.TestCase):
@asynctest
async def test_receive_junk(self):
async with querier_and_responder() as (querier, _):
querier.datagram_received(b"junk", None)
@asynctest
async def test_resolve_bad(self):
hostname = mdns.create_mdns_hostname()
async with querier_and_responder() as (querier, _):
result = await querier.resolve(hostname)
self.assertEqual(result, None)
@asynctest
async def test_resolve_close(self):
hostname = mdns.create_mdns_hostname()
# close the querier while the query is ongoing
async with querier_and_responder() as (querier, _):
result = await asyncio.gather(
querier.resolve(hostname, timeout=None), querier.close()
)
self.assertEqual(result, [None, None])
@asynctest
async def test_resolve_good_ipv4(self):
hostaddr = "1.2.3.4"
hostname = mdns.create_mdns_hostname()
async with querier_and_responder() as (querier, responder):
await responder.publish(hostname, hostaddr)
result = await querier.resolve(hostname)
self.assertEqual(result, hostaddr)
@asynctest
async def test_resolve_good_ipv6(self):
hostaddr = "::ffff:1.2.3.4"
hostname = mdns.create_mdns_hostname()
async with querier_and_responder() as (querier, responder):
await responder.publish(hostname, hostaddr)
result = await querier.resolve(hostname)
self.assertEqual(result, hostaddr)
@asynctest
async def test_resolve_simultaneous_bad(self):
hostname = mdns.create_mdns_hostname()
async with querier_and_responder() as (querier, _):
results = await asyncio.gather(
querier.resolve(hostname), querier.resolve(hostname)
)
self.assertEqual(results, [None, None])
@asynctest
async def test_resolve_simultaneous_good(self):
hostaddr = "1.2.3.4"
hostname = mdns.create_mdns_hostname()
async with querier_and_responder() as (querier, responder):
await responder.publish(hostname, hostaddr)
results = await asyncio.gather(
querier.resolve(hostname), querier.resolve(hostname)
)
self.assertEqual(results, [hostaddr, hostaddr])