async def test_example_docs(): addr = iec104.Address('127.0.0.1', util.get_unused_tcp_port()) conn2_future = asyncio.Future() srv = await iec104.listen(conn2_future.set_result, addr) conn1 = await iec104.connect(addr) conn2 = await conn2_future data = iec104.Data(value=iec104.SingleValue.ON, quality=iec104.Quality(invalid=False, not_topical=False, substituted=False, blocked=False, overflow=False), time=None, asdu_address=123, io_address=321, cause=iec104.Cause.SPONTANEOUS, is_test=False) # send data from conn1 to conn2 conn1.notify_data_change([data]) result = await conn2.receive() assert result == [data] # send data from conn2 to conn1 conn2.notify_data_change([data]) result = await conn1.receive() assert result == [data] await conn1.async_close() await conn2.async_close() await srv.async_close()
async def test_example_docs(): from hat import aio from hat import juggler from hat import util port = util.get_unused_tcp_port() host = '127.0.0.1' server_conns = aio.Queue() server = await juggler.listen(host, port, server_conns.put_nowait, autoflush_delay=0) client_conn = await juggler.connect(f'ws://{host}:{port}/ws', autoflush_delay=0) server_conn = await server_conns.get() server_remote_data = aio.Queue() server_conn.register_change_cb( lambda: server_remote_data.put_nowait(server_conn.remote_data)) client_conn.set_local_data(123) data = await server_remote_data.get() assert data == 123 await server.async_close() await client_conn.wait_closed() await server_conn.wait_closed()
async def test_example_docs(): from hat import aio from hat import chatter from hat import sbs from hat import util sbs_repo = sbs.Repository( chatter.sbs_repo, r""" module Example Msg = Integer """) port = util.get_unused_tcp_port() address = f'tcp+sbs://127.0.0.1:{port}' server_conns = aio.Queue() server = await chatter.listen(sbs_repo, address, server_conns.put_nowait) client_conn = await chatter.connect(sbs_repo, address) server_conn = await server_conns.get() data = chatter.Data('Example', 'Msg', 123) client_conn.send(data) msg = await server_conn.receive() assert msg.data == data await server.async_close() await client_conn.wait_closed() await server_conn.wait_closed()
async def create(ui_path): port = util.get_unused_tcp_port() srv = Server() srv._addr = f'http://127.0.0.1:{port}' srv._async_group = aio.Group() srv._srv = await juggler.listen('127.0.0.1', port, srv._on_connection, static_dir=ui_path) srv._async_group.spawn(aio.call_on_cancel, srv._srv.async_close) srv._async_group.spawn(aio.call_on_done, srv._srv.closed, srv._async_group.close) return srv
async def test_example_docs(): addr = cotp.Address('127.0.0.1', util.get_unused_tcp_port()) conn2_future = asyncio.Future() srv = await cotp.listen(conn2_future.set_result, addr) conn1 = await cotp.connect(addr) conn2 = await conn2_future # send from conn1 to conn2 data = b'123' conn1.write(data) result = await conn2.read() assert result == data # send from conn2 to conn1 data = b'321' conn2.write(data) result = await conn1.read() assert result == data await conn1.async_close() await conn2.async_close() await srv.async_close()
def __init__(self, img_path, localtime, user, tmpdir): tmp_img_path = tmpdir / 'img.qcow2' subprocess.run([ 'qemu-img', 'create', '-q', '-F', 'qcow2', '-f', 'qcow2', '-b', str(img_path.resolve()), str(tmp_img_path) ], check=True) self._user = user self._ssh_port = util.get_unused_tcp_port() self._known_hosts_path = tmpdir / 'known_hosts' cmd = [ 'qemu-system-x86_64', '-cpu', 'host', '-hda', str(tmp_img_path), '-m', '2G', '-device', 'e1000,netdev=net0', '-netdev', f'user,id=net0,hostfwd=tcp::{self._ssh_port}-:22', '-display', 'none', '-nographic' ] if sys.platform == 'linux': cmd.append('-enable-kvm') if localtime: cmd.extend(['-rtc', 'base=localtime']) self._p = subprocess.Popen(cmd, stdout=subprocess.DEVNULL)
def ui_port(): return util.get_unused_tcp_port()
def server_port(): return util.get_unused_tcp_port()
def comm_port(): return util.get_unused_tcp_port()
def slave_addr(): return tcp.Address('127.0.0.1', util.get_unused_tcp_port())
def addr(): return tpkt.Address('127.0.0.1', util.get_unused_tcp_port())
def master_port(): return util.get_unused_tcp_port()
def syslog_port(): return util.get_unused_tcp_port()
def secondary_port(primary_port): port = None while not port or port == primary_port: port = util.get_unused_tcp_port() return port
def primary_port(): return util.get_unused_tcp_port()
def addr(): port = util.get_unused_tcp_port() return f'tcp+sbs://127.0.0.1:{port}'
def test_get_unused_tcp_port(): port = util.get_unused_tcp_port() assert isinstance(port, int) assert 0 < port <= 0xFFFF