def test_server_makefile2(self): listener = tcp_listener(backlog=1) port = listener.getsockname()[1] connector = socket.socket() self._close_on_teardown(connector) t = self._make_ssl_connect_task(connector, port) t.start() try: client_socket, _addr = listener.accept() t.accepted_event.set() self._close_on_teardown(client_socket) client_socket = ssl.wrap_socket(client_socket, keyfile=certfile, certfile=certfile, server_side=True) self._close_on_teardown(client_socket) fileno = client_socket.fileno() self.assert_open(client_socket, fileno) f = client_socket.makefile() self.assert_open(client_socket, fileno) # Closing fileobject does not close SSLObject f.close() self.assert_open(client_socket, fileno) client_socket.close() self.assert_closed(client_socket, fileno) finally: self.__cleanup(t, connector, listener, client_socket)
def test_server_makefile1(self): listener = tcp_listener(backlog=1) port = listener.getsockname()[1] connector = socket.socket() self._close_on_teardown(connector) def connect(): connector.connect((DEFAULT_CONNECT, port)) t = threading.Thread(target=connect) t.start() try: client_socket, _addr = listener.accept() fileno = client_socket.fileno() f = client_socket.makefile() self.assert_open(client_socket, fileno) client_socket.close() # Under python 2, this closes socket wrapper object but not the file descriptor; # under python 3, both stay open if PY3: self.assert_open(client_socket, fileno) else: self.assert_closed(client_socket) self.assert_open(fileno) f.close() self.assert_closed(client_socket, fileno) finally: t.join() listener.close() connector.close()
def test_server_makefile2(self): listener = tcp_listener(backlog=1) port = listener.getsockname()[1] connector = socket.socket() self._close_on_teardown(connector) def connect(): connector.connect((DEFAULT_CONNECT, port)) t = threading.Thread(target=connect) t.start() try: client_socket, _addr = listener.accept() fileno = client_socket.fileno() f = client_socket.makefile() self.assert_open(client_socket, fileno) # closing fileobject does not close the socket f.close() self.assert_open(client_socket, fileno) client_socket.close() self.assert_closed(client_socket, fileno) finally: t.join() listener.close() connector.close()
def test_server_makefile1(self): with Closing() as closer: listener = closer(tcp_listener(backlog=1)) port = listener.getsockname()[1] connector = closer(socket.socket()) def connect(): connector.connect((DEFAULT_CONNECT, port)) closer.running_task(threading.Thread(target=connect)) client_socket = closer.accept(listener) fileno = client_socket.fileno() f = closer(client_socket.makefile()) self.assert_open(client_socket, fileno) client_socket.close() # Under python 2, this closes socket wrapper object but not the file descriptor; # under python 3, both stay open if PY3: self.assert_open(client_socket, fileno) else: self.assert_closed(client_socket) self.assert_open(fileno) f.close() self.assert_closed(client_socket, fileno)
def test_serverssl_makefile2(self): listener = self._close_on_teardown(tcp_listener(backlog=1)) port = listener.getsockname()[1] listener = ssl.wrap_socket(listener, keyfile=certfile, certfile=certfile) connector = socket.socket() def connect(): connector.connect((DEFAULT_CONNECT, port)) s = ssl.wrap_socket(connector) s.sendall(b'test_serverssl_makefile2') s.close() connector.close() t = threading.Thread(target=connect) t.daemon = True t.start() try: client_socket, _addr = listener.accept() fileno = client_socket.fileno() self.assert_open(client_socket, fileno) f = client_socket.makefile() self.assert_open(client_socket, fileno) self.assertEqual(f.read(), 'test_serverssl_makefile2') self.assertEqual(f.read(), '') f.close() if WIN and psutil: # Hmm? self.extra_allowed_open_states = (psutil.CONN_CLOSE_WAIT,) self.assert_open(client_socket, fileno) client_socket.close() self.assert_closed(client_socket, fileno) finally: self.__cleanup(t, listener)
def test_server_makefile2(self): listener = tcp_listener(backlog=1) port = listener.getsockname()[1] connector = socket.socket() self._close_on_teardown(connector) t = self._make_ssl_connect_task(connector, port) t.start() try: client_socket, _addr = listener.accept() self._close_on_teardown(client_socket) client_socket = ssl.wrap_socket(client_socket, keyfile=certfile, certfile=certfile, server_side=True) self._close_on_teardown(client_socket) fileno = client_socket.fileno() self.assert_open(client_socket, fileno) f = client_socket.makefile() self.assert_open(client_socket, fileno) # Closing fileobject does not close SSLObject f.close() self.assert_open(client_socket, fileno) client_socket.close() self.assert_closed(client_socket, fileno) finally: self.__cleanup(t, connector, listener, client_socket)
def test_server_makefile2(self): with Closing() as closer: listener = closer(tcp_listener(backlog=1)) port = listener.getsockname()[1] connector = closer(socket.socket()) t = self._make_ssl_connect_task(connector, port) closer.running_task(t) t.accepted_event.set() client_socket = closer.accept(listener) client_socket = closer( ssl.wrap_socket(client_socket, keyfile=certfile, certfile=certfile, server_side=True)) fileno = client_socket.fileno() self.assert_open(client_socket, fileno) f = client_socket.makefile() self.assert_open(client_socket, fileno) # Closing fileobject does not close SSLObject f.close() self.assert_open(client_socket, fileno) client_socket.close() self.assert_closed(client_socket, fileno)
def test_serverssl_makefile1(self): listener = self._close_on_teardown(tcp_listener(backlog=1)) fileno = listener.fileno() port = listener.getsockname()[1] listener = ssl.wrap_socket(listener, keyfile=certfile, certfile=certfile) connector = socket.socket() self._close_on_teardown(connector) t = self._make_ssl_connect_task(connector, port) t.start() try: client_socket, _addr = listener.accept() t.accepted_event.set() fileno = client_socket.fileno() self.assert_open(client_socket, fileno) f = client_socket.makefile() self.assert_open(client_socket, fileno) client_socket.close() self.assert_open(client_socket, fileno) f.close() self.assert_closed(client_socket, fileno) finally: self.__cleanup(t, listener, connector)
def test_server_simple(self): with Closing() as closer: listener = closer(tcp_listener(backlog=1)) port = listener.getsockname()[1] connector = closer(socket.socket()) def connect(): connector.connect((DEFAULT_CONNECT, port)) closer.running_task(threading.Thread(target=connect)) client_socket = closer.accept(listener) fileno = client_socket.fileno() self.assert_open(client_socket, fileno) client_socket.close() self.assert_closed(client_socket)
def test_serverssl_makefile1(self): raw_listener = tcp_listener(backlog=1) fileno = raw_listener.fileno() port = raw_listener.getsockname()[1] listener = ssl.wrap_socket(raw_listener, keyfile=certfile, certfile=certfile) connector = socket.socket() t = self._make_ssl_connect_task(connector, port) t.start() with CleaningUp(t, listener, raw_listener, connector) as client_socket: t.accepted_event.set() fileno = client_socket.fileno() self.assert_open(client_socket, fileno) f = client_socket.makefile() self.assert_open(client_socket, fileno) client_socket.close() self.assert_open(client_socket, fileno) f.close() self.assert_closed(client_socket, fileno)
def test_serverssl_makefile2(self): raw_listener = tcp_listener(backlog=1) port = raw_listener.getsockname()[1] listener = ssl.wrap_socket(raw_listener, keyfile=certfile, certfile=certfile) accepted_event = threading.Event() def connect(connector=socket.socket()): try: connector.connect((DEFAULT_CONNECT, port)) s = ssl.wrap_socket(connector) accepted_event.wait() s.sendall(b'test_serverssl_makefile2') s.shutdown(socket.SHUT_RDWR) s.close() finally: connector.close() t = threading.Thread(target=connect) t.daemon = True t.start() client_socket = None with CleaningUp(t, listener, raw_listener) as client_socket: accepted_event.set() fileno = client_socket.fileno() self.assert_open(client_socket, fileno) f = client_socket.makefile() self.assert_open(client_socket, fileno) self.assertEqual(f.read(), 'test_serverssl_makefile2') self.assertEqual(f.read(), '') # Closing file object does not close the socket. f.close() if WIN and psutil: # Hmm? self.extra_allowed_open_states = (psutil.CONN_CLOSE_WAIT, ) self.assert_open(client_socket, fileno) client_socket.close() self.assert_closed(client_socket, fileno)
def test_serverssl_makefile1(self): listener = self._close_on_teardown(tcp_listener(backlog=1)) fileno = listener.fileno() port = listener.getsockname()[1] listener = ssl.wrap_socket(listener, keyfile=certfile, certfile=certfile) connector = socket.socket() self._close_on_teardown(connector) t = self._make_ssl_connect_task(connector, port) t.start() try: client_socket, _addr = listener.accept() fileno = client_socket.fileno() self.assert_open(client_socket, fileno) f = client_socket.makefile() self.assert_open(client_socket, fileno) client_socket.close() self.assert_open(client_socket, fileno) f.close() self.assert_closed(client_socket, fileno) finally: self.__cleanup(t, listener, connector)
def test(self): from gevent.socket import ssl listener = self._close_on_teardown(tcp_listener(backlog=5)) listener = ssl(listener) self.assertRaises(TypeError, self.ServerSubClass, listener)
def get_listener(self): return self._close_on_teardown(tcp_listener(backlog=5))
def _setup_listener(self): return tcp_listener()