Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
    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):
        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)
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    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)
Ejemplo n.º 14
0
    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)
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 def get_listener(self):
     return self._close_on_teardown(tcp_listener(backlog=5))
Ejemplo n.º 17
0
 def _setup_listener(self):
     return tcp_listener()
Ejemplo n.º 18
0
 def _setup_listener(self):
     return tcp_listener()
Ejemplo n.º 19
0
 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)
Ejemplo n.º 20
0
 def get_listener(self):
     return self._close_on_teardown(tcp_listener(backlog=5))