Example #1
0
    def test_closesocket_failure(self):
        sock = socket_from_object(self.python_socket)
        self.python_socket.close()
        _, library = dist.load()

        # Socket is already closed so closesocket should fail.
        self.assertEqual(library.closesocket(sock._cdata[0]), -1)

        self.assert_last_error(library.WSAENOTSOCK)
Example #2
0
    def test_closesocket_failure(self):
        sock = socket_from_object(self.python_socket)
        self.python_socket.close()
        _, library = dist.load()

        # Socket is already closed so closesocket should fail.
        self.assertEqual(library.closesocket(sock._cdata[0]), -1)

        self.assert_last_error(library.WSAENOTSOCK)
Example #3
0
    def test_basic_call(self):
        # Establish a simple socket server and client
        _, library = dist.load()
        sock, _, = self.create_socket_pair()

        # Setup the event
        event = self.create_wsaevent()
        WSAEventSelect(
            socket_from_object(sock), event,
            library.FD_WRITE | library.FD_ACCEPT | library.FD_CONNECT)
Example #4
0
    def test_basic_call(self):
        # Establish a simple socket server and client
        _, library = dist.load()
        sock, _, = self.create_socket_pair()

        # Setup the event
        event = self.create_wsaevent()
        WSAEventSelect(
            socket_from_object(sock),
            event,
            library.FD_WRITE | library.FD_ACCEPT | library.FD_CONNECT
        )
Example #5
0
    def test_socket_error(self):
        def wrapped(*_):
            _, library = dist.load()
            return library.SOCKET_ERROR

        with mock_library(WSAEventSelect=wrapped):
            # Establish a simple socket server and client
            _, library = dist.load()
            sock, _ = self.create_socket_pair()

            # Setup the event
            event = self.create_wsaevent()

            with self.assertRaises(WindowsAPIError):
                WSAEventSelect(
                    socket_from_object(sock), event,
                    library.FD_WRITE | library.FD_ACCEPT | library.FD_CONNECT)
Example #6
0
    def test_triggers_write_event(self):
        _, library = dist.load()
        sock_server, sock_client = self.create_socket_pair()
        sock_client_wintype = socket_from_object(sock_client)

        # Listen on one socket and then connect with another.  This should
        # cause an FD_ACCEPT network event to occur.
        sock_server.bind(("127.0.0.1", 0))
        sock_server.listen(0)
        _, port = sock_server.getsockname()
        sock_client.connect(("127.0.0.1", port))
        sock_client.send(b"Hello world")

        event = self.create_wsaevent()
        WSAEventSelect(sock_client_wintype, event, library.FD_WRITE)
        events = WSAEnumNetworkEvents(sock_client_wintype)
        self.assertEqual(events.lNetworkEvents, library.FD_WRITE)
Example #7
0
    def test_triggers_write_event(self):
        _, library = dist.load()
        sock_server, sock_client = self.create_socket_pair()
        sock_client_wintype = socket_from_object(sock_client)

        # Listen on one socket and then connect with another.  This should
        # cause an FD_ACCEPT network event to occur.
        sock_server.bind(("127.0.0.1", 0))
        sock_server.listen(0)
        _, port = sock_server.getsockname()
        sock_client.connect(("127.0.0.1", port))
        sock_client.send(b"Hello world")

        event = self.create_wsaevent()
        WSAEventSelect(sock_client_wintype, event, library.FD_WRITE)
        events = WSAEnumNetworkEvents(sock_client_wintype)
        self.assertEqual(events.lNetworkEvents, library.FD_WRITE)
Example #8
0
    def test_socket_error(self):
        def wrapped(*_):
            _, library = dist.load()
            return library.SOCKET_ERROR

        with mock_library(WSAEventSelect=wrapped):
            # Establish a simple socket server and client
            _, library = dist.load()
            sock, _ = self.create_socket_pair()

            # Setup the event
            event = self.create_wsaevent()

            with self.assertRaises(WindowsAPIError):
                WSAEventSelect(
                    socket_from_object(sock),
                    event,
                    library.FD_WRITE | library.FD_ACCEPT | library.FD_CONNECT
                )
Example #9
0
 def test_closesocket_success(self):
     sock = socket_from_object(self.python_socket)
     _, library = dist.load()
     self.assertEqual(library.closesocket(sock._cdata[0]), 0)
Example #10
0
 def test_return_type(self):
     sock = socket_from_object(self.python_socket)
     self.assertIsInstance(sock, SOCKET)
Example #11
0
 def test_error_if_socket_is_closed(self):
     self.python_socket.close()
     with self.assertRaises(InputError):
         socket_from_object(self.python_socket)
Example #12
0
 def test_type(self):
     with self.assertRaises(InputError):
         socket_from_object(None)
Example #13
0
 def test_basic_call(self):
     _, library = dist.load()
     sock, _ = self.create_socket_pair()
     events = WSAEnumNetworkEvents(socket_from_object(sock))
     self.assertIsInstance(events, LPWSANETWORKEVENTS)
     self.assertEqual(events.iErrorCode, tuple([0] * library.FD_MAX_EVENTS))
Example #14
0
 def test_basic_call(self):
     _, library = dist.load()
     sock, _ = self.create_socket_pair()
     events = WSAEnumNetworkEvents(socket_from_object(sock))
     self.assertIsInstance(events, LPWSANETWORKEVENTS)
     self.assertEqual(events.iErrorCode, tuple([0] * library.FD_MAX_EVENTS))
Example #15
0
 def test_type(self):
     with self.assertRaises(InputError):
         socket_from_object(None)
Example #16
0
 def test_error_if_socket_is_closed(self):
     self.python_socket.close()
     with self.assertRaises(InputError):
         socket_from_object(self.python_socket)
Example #17
0
 def test_closesocket_success(self):
     sock = socket_from_object(self.python_socket)
     _, library = dist.load()
     self.assertEqual(library.closesocket(sock._cdata[0]), 0)
Example #18
0
 def test_return_type(self):
     sock = socket_from_object(self.python_socket)
     self.assertIsInstance(sock, SOCKET)