def test_blocking_ssl_timeout_raise(self): """tests less=True mechanism for channels in sockets""" sck = socket(AF_INET, SOCK_STREAM) sck.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) with get_dummy_cert() as dncert: sck.bind(('127.0.0.1', TESTING_PORT)) sck.listen(10) sck = ssl.wrap_socket(sck, certfile=dncert) sck = SSLServerSocket(sck) class ClientSocketThread(Thread): def __init__(self, utc): Thread.__init__(self) self.utc = utc def run(self): """@param utc: unit test class""" sleep(0.1) sck = socket(AF_INET, SOCK_STREAM) sck = ssl.wrap_socket(sck) sck.connect(('127.0.0.1', TESTING_PORT)) sck = SSLSocket(sck) sck.settimeout(3) self.utc.assertRaises(DataNotAvailable, sck.read, 1) sck.close() cs = ClientSocketThread(self) cs.start() csk = sck.read() cs.join() csk.close() sck.close()
def test_blocking_server(self): """tests L{ServerSocket} and a client L{Socket} in a multithreaded model""" sck = socket(AF_INET, SOCK_STREAM) sck.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) with get_dummy_cert() as dncert: sck.bind(('127.0.0.1', TESTING_PORT)) sck.listen(10) sck = ssl.wrap_socket(sck, certfile=dncert) sck = SSLServerSocket(sck) class ClientSocketThread(Thread): def __init__(self, utc): Thread.__init__(self) self.utc = utc def run(self): """@param utc: unit test class""" sleep(0.1) sck = socket(AF_INET, SOCK_STREAM) sck = ssl.wrap_socket(sck) sck.connect(('127.0.0.1', TESTING_PORT)) sck = SSLSocket(sck) sck.write('Hello World') self.pkdata = sck.read(3, less=False, peek=True) self.data = sck.read(1) self.data2 = sck.read(2) self.utc.assertRaises(ChannelClosed, sck.read, 1) sck.close() cs = ClientSocketThread(self) cs.start() csk = sck.read() self.assertEquals(csk.read(5), 'Hello') self.assertEquals(csk.read(6), ' World') csk.write('Yes') csk.close() cs.join() self.assertEquals(cs.pkdata, 'Yes') self.assertEquals(cs.data, 'Y') self.assertEquals(cs.data2, 'es') sck.close()
def test_blocking_server_client_with_less(self): """tests less=True mechanism for channels in sockets""" sck = socket(AF_INET, SOCK_STREAM) sck.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) with get_dummy_cert() as dncert: sck.bind(('127.0.0.1', TESTING_PORT)) sck.listen(10) sck = ssl.wrap_socket(sck, certfile=dncert) sck = SSLServerSocket(sck) class ClientSocketThread(Thread): def __init__(self, utc): Thread.__init__(self) self.utc = utc def run(self): """@param utc: unit test class""" sleep(0.1) sck = socket(AF_INET, SOCK_STREAM) sck = ssl.wrap_socket(sck) sck.connect(('127.0.0.1', TESTING_PORT)) sck = SSLSocket(sck) pkdata = sck.read(100, less=True, peek=True) data = sck.read(100, less=True) self.utc.assertEquals(pkdata, 'Long string? Not enough.') self.utc.assertEquals(data, 'Long string? Not enough.') self.utc.assertRaises(ChannelClosed, sck.read, 1) sck.close() cs = ClientSocketThread(self) cs.start() csk = sck.read() csk.write('Long string? Not enough.') csk.close() cs.join() sck.close()