def test_saproutedstreamsocket(self): """Test SAPRoutedStreamSocket""" self.start_server(SAPRouterServerTestHandler) sock = socket.socket() sock.connect((self.test_address, self.test_port)) route = [ SAPRouterRouteHop(hostname=self.test_address, port=self.test_port), SAPRouterRouteHop(hostname="10.0.0.1", port="3200") ] self.client = SAPRoutedStreamSocket(sock, route=route, router_version=40) packet = self.client.sr(self.test_string) self.assertIn(SAPNI, packet) self.assertEqual(packet[SAPNI].length, len(self.test_string) + 4) self.assertEqual(unpack("!I", packet[SAPNI].payload.load[:4]), (len(self.test_string), )) self.assertEqual(packet[SAPNI].payload.load[4:], self.test_string) self.client.close() self.stop_server()
def test_saproutedstreamsocket_error(self): """Test SAPRoutedStreamSocket throwing of Exception if an invalid or unexpected packet is received""" self.start_server(SAPRouterServerTestHandler) sock = socket.socket() sock.connect((self.test_address, self.test_port)) with self.assertRaises(Exception): self.client = SAPRoutedStreamSocket(sock, route=None, router_version=40) self.stop_server()
def test_saproutedstreamsocket_route_error(self): """Test SAPRoutedStreamSocket throwing of SAPRouteException if a route denied return error is received""" self.start_server(SAPRouterServerTestHandler) sock = socket.socket() sock.connect((self.test_address, self.test_port)) route = [SAPRouterRouteHop(hostname=self.test_address, port=self.test_port), SAPRouterRouteHop(hostname="10.0.0.2", port="3200")] with self.assertRaises(SAPRouteException): self.client = SAPRoutedStreamSocket(sock, route=route, router_version=40) self.stop_server()