def testUnusedPort(self): port1=SU.findProbablyUnusedPort() port2=SU.findProbablyUnusedPort() self.assertTrue(port1>0) self.assertNotEqual(port1,port2) port1=SU.findProbablyUnusedPort(socktype=socket.SOCK_DGRAM) port2=SU.findProbablyUnusedPort(socktype=socket.SOCK_DGRAM) self.assertTrue(port1>0) self.assertNotEqual(port1,port2)
def testUnusedPort6(self): port1=SU.findProbablyUnusedPort(family=socket.AF_INET6) port2=SU.findProbablyUnusedPort(family=socket.AF_INET6) self.assertTrue(port1>0) self.assertNotEqual(port1,port2) port1=SU.findProbablyUnusedPort(family=socket.AF_INET6, socktype=socket.SOCK_DGRAM) port2=SU.findProbablyUnusedPort(family=socket.AF_INET6, socktype=socket.SOCK_DGRAM) self.assertTrue(port1>0) self.assertNotEqual(port1,port2)
def testServer_poll(self): daemon=ServerCallback() port=SU.findProbablyUnusedPort() serv=SocketServer_Poll() serv.init(daemon,"localhost",port) self.assertEqual("localhost:"+str(port), serv.locationStr) self.assertTrue(serv.sock is not None) conn=SU.SocketConnection(serv.sock, "ID12345") self.assertEqual("ID12345",conn.objectId) self.assertTrue(conn.sock is not None) conn.close() conn.close() self.assertFalse(conn.sock is None, "connections keep their socket object even if it's closed") serv.close() serv.close() self.assertTrue(serv.sock is None)
def testServer_select(self): daemon = ServerCallback() port = SU.findProbablyUnusedPort() serv = SocketServer_Select() serv.init(daemon, "localhost", port) self.assertEqual("localhost:" + str(port), serv.locationStr) self.assertTrue(serv.sock is not None) conn = SU.SocketConnection(serv.sock, "ID12345") self.assertEqual("ID12345", conn.objectId) self.assertTrue(conn.sock is not None) conn.close() conn.close() self.assertFalse( conn.sock is None, "connections keep their socket object even if it's closed") serv.close() serv.close() self.assertTrue(serv.sock is None)
def testServerPoolFull(self): port = socketutil.findProbablyUnusedPort() serv = SocketServer_Threadpool() daemon = ServerCallback() serv.init(daemon, "localhost", port) serversock = serv.sock.getsockname() csock1 = socketutil.createSocket(connect=serversock) csock2 = socketutil.createSocket(connect=serversock) try: serv.events([serv.sock]) time.sleep(0.2) self.assertEqual([None], daemon.received_denied_reasons) serv.events([serv.sock]) time.sleep(0.2) self.assertEqual(2, len(daemon.received_denied_reasons)) self.assertIn("no free workers, increase server threadpool size", daemon.received_denied_reasons) finally: csock1.close() csock2.close() serv.shutdown()