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)
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)
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)
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 )
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)
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)
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)
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 )
def test_closesocket_success(self): sock = socket_from_object(self.python_socket) _, library = dist.load() self.assertEqual(library.closesocket(sock._cdata[0]), 0)
def test_return_type(self): sock = socket_from_object(self.python_socket) self.assertIsInstance(sock, SOCKET)
def test_error_if_socket_is_closed(self): self.python_socket.close() with self.assertRaises(InputError): socket_from_object(self.python_socket)
def test_type(self): with self.assertRaises(InputError): socket_from_object(None)
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))
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))
def test_type(self): with self.assertRaises(InputError): socket_from_object(None)
def test_error_if_socket_is_closed(self): self.python_socket.close() with self.assertRaises(InputError): socket_from_object(self.python_socket)
def test_closesocket_success(self): sock = socket_from_object(self.python_socket) _, library = dist.load() self.assertEqual(library.closesocket(sock._cdata[0]), 0)
def test_return_type(self): sock = socket_from_object(self.python_socket) self.assertIsInstance(sock, SOCKET)