def test_server_listen(): """ Test various Server.listen() arguments and their effect. """ @contextmanager def listen_on(cls, *args, **kwargs): server = cls({}) server.listen(*args, **kwargs) try: yield server finally: server.stop() # Note server.address is the concrete, contactable address with listen_on(Server, 7800) as server: assert server.port == 7800 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server) as server: assert server.port > 0 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(MyServer) as server: assert server.port == MyServer.default_port assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server, ('', 7801)) as server: assert server.port == 7801 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server, 'tcp://:7802') as server: assert server.port == 7802 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) # Only IPv4 with listen_on(Server, ('0.0.0.0', 7810)) as server: assert server.port == 7810 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4(server.port) with listen_on(Server, ('127.0.0.1', 7811)) as server: assert server.port == 7811 assert server.address == 'tcp://127.0.0.1:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_4(server.port) with listen_on(Server, 'tcp://127.0.0.1:7812') as server: assert server.port == 7812 assert server.address == 'tcp://127.0.0.1:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_4(server.port) # Only IPv6 if has_ipv6(): with listen_on(Server, ('::', 7813)) as server: assert server.port == 7813 assert server.address == 'tcp://[%s]:%d' % (EXTERNAL_IP6, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_6(server.port) with listen_on(Server, ('::1', 7814)) as server: assert server.port == 7814 assert server.address == 'tcp://[::1]:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_6(server.port) with listen_on(Server, 'tcp://[::1]:7815') as server: assert server.port == 7815 assert server.address == 'tcp://[::1]:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_6(server.port) # TLS sec = tls_security() with listen_on(Server, 'tls://', listen_args=sec.get_listen_args('scheduler')) as server: assert server.address.startswith('tls://') yield assert_can_connect(server.address, connection_args=sec.get_connection_args('client')) # InProc with listen_on(Server, 'inproc://') as server: inproc_addr1 = server.address assert inproc_addr1.startswith('inproc://%s/%d/' % (get_ip(), os.getpid())) yield assert_can_connect(inproc_addr1) with listen_on(Server, 'inproc://') as server2: inproc_addr2 = server2.address assert inproc_addr2.startswith('inproc://%s/%d/' % (get_ip(), os.getpid())) yield assert_can_connect(inproc_addr2) yield assert_can_connect(inproc_addr1) yield assert_cannot_connect(inproc_addr2)
def test_server_listen(): """ Test various Server.listen() arguments and their effect. """ @contextmanager def listen_on(cls, *args, **kwargs): server = cls({}) server.listen(*args, **kwargs) try: yield server finally: server.stop() # Note server.address is the concrete, contactable address with listen_on(Server, 7800) as server: assert server.port == 7800 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server) as server: assert server.port > 0 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(MyServer) as server: assert server.port == MyServer.default_port assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server, ('', 7801)) as server: assert server.port == 7801 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server, 'tcp://:7802') as server: assert server.port == 7802 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) # Only IPv4 with listen_on(Server, ('0.0.0.0', 7810)) as server: assert server.port == 7810 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4(server.port) with listen_on(Server, ('127.0.0.1', 7811)) as server: assert server.port == 7811 assert server.address == 'tcp://127.0.0.1:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_4(server.port) with listen_on(Server, 'tcp://127.0.0.1:7812') as server: assert server.port == 7812 assert server.address == 'tcp://127.0.0.1:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_4(server.port) # Only IPv6 if has_ipv6(): with listen_on(Server, ('::', 7813)) as server: assert server.port == 7813 assert server.address == 'tcp://[%s]:%d' % (EXTERNAL_IP6, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_6(server.port) with listen_on(Server, ('::1', 7814)) as server: assert server.port == 7814 assert server.address == 'tcp://[::1]:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_6(server.port) with listen_on(Server, 'tcp://[::1]:7815') as server: assert server.port == 7815 assert server.address == 'tcp://[::1]:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_6(server.port) # TLS sec = tls_security() with listen_on(Server, 'tls://', listen_args=sec.get_listen_args('scheduler')) as server: assert server.address.startswith('tls://') yield assert_can_connect( server.address, connection_args=sec.get_connection_args('client')) # InProc with listen_on(Server, 'inproc://') as server: inproc_addr1 = server.address assert inproc_addr1.startswith('inproc://%s/%d/' % (get_ip(), os.getpid())) yield assert_can_connect(inproc_addr1) with listen_on(Server, 'inproc://') as server2: inproc_addr2 = server2.address assert inproc_addr2.startswith('inproc://%s/%d/' % (get_ip(), os.getpid())) yield assert_can_connect(inproc_addr2) yield assert_can_connect(inproc_addr1) yield assert_cannot_connect(inproc_addr2)
def test_server_listen(): """ Test various Server.listen() arguments and their effect. """ @contextmanager def listen_on(cls, *args): server = cls({}) server.listen(*args) try: yield server finally: server.stop() # Note server.address is the concrete, contactable address with listen_on(Server, 8882) as server: assert server.port == 8882 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server) as server: assert server.port > 0 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(MyServer) as server: assert server.port == MyServer.default_port assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server, ('', 2468)) as server: assert server.port == 2468 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) with listen_on(Server, 'tcp://:2468') as server: assert server.port == 2468 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4_6(server.port) # Only IPv4 with listen_on(Server, ('0.0.0.0', 2468)) as server: assert server.port == 2468 assert server.address == 'tcp://%s:%d' % (EXTERNAL_IP4, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_4(server.port) with listen_on(Server, ('127.0.0.1', 2468)) as server: assert server.port == 2468 assert server.address == 'tcp://127.0.0.1:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_4(server.port) with listen_on(Server, 'tcp://127.0.0.1:2468') as server: assert server.port == 2468 assert server.address == 'tcp://127.0.0.1:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_4(server.port) # Only IPv6 if has_ipv6(): with listen_on(Server, ('::', 2468)) as server: assert server.port == 2468 assert server.address == 'tcp://[%s]:%d' % (EXTERNAL_IP6, server.port) yield assert_can_connect(server.address) yield assert_can_connect_from_everywhere_6(server.port) with listen_on(Server, ('::1', 2468)) as server: assert server.port == 2468 assert server.address == 'tcp://[::1]:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_6(server.port) with listen_on(Server, 'tcp://[::1]:2468') as server: assert server.port == 2468 assert server.address == 'tcp://[::1]:%d' % server.port yield assert_can_connect(server.address) yield assert_can_connect_locally_6(server.port) # InProc with listen_on(Server, 'inproc://') as server: inproc_addr1 = server.address assert inproc_addr1.startswith('inproc://%s/%d/' % (get_ip(), os.getpid())) yield assert_can_connect(inproc_addr1) with listen_on(Server, 'inproc://') as server2: inproc_addr2 = server2.address assert inproc_addr2.startswith('inproc://%s/%d/' % (get_ip(), os.getpid())) yield assert_can_connect(inproc_addr2) yield assert_can_connect(inproc_addr1) yield assert_cannot_connect(inproc_addr2)