add test for IPv6 -> IPv4 connect failure
authorTero Marttila <terom@fixme.fi>
Sun, 23 Aug 2009 22:43:39 +0300
changeset 36 4d5c02fe9c27
parent 35 50dc1517f797
child 37 14db3fe42b6c
add test for IPv6 -> IPv4 connect failure
test/transport_tcp.py
--- a/test/transport_tcp.py	Sun Aug 23 22:39:19 2009 +0300
+++ b/test/transport_tcp.py	Sun Aug 23 22:43:39 2009 +0300
@@ -1,6 +1,6 @@
 import unittest
 
-from qmsk.net.socket import socket as _socket, af_inet
+from qmsk.net.socket import socket as _socket, af_inet, af_inet6
 from qmsk.net.transport import tcp, socket, endpoint
 
 class TestService (unittest.TestCase) :
@@ -56,6 +56,15 @@
 
         self.assertEquals(cs.sock.getsockname(), sockaddr)
         self.assertEquals(cs.sock.getpeername(), self.sockaddr)
+ 
+    def test_connect_bind6 (self) :
+        sockaddr = af_inet6.sockaddr_in6('::1', self.sockaddr.port + 1)
+        
+        # connect with bind()
+        cc = tcp.Client(self.addr, bind_endpoint=endpoint.SockAddr(sockaddr))
+        
+        # should fail (IPv6 -> IPv4)
+        self.assertRaises(socket.SocketConnectEndpointError, cc.connect)
     
     def test_connect_inet (self) :
         cc = tcp.Client(endpoint.InetAddr('localhost', self.sockaddr.port), socket.AF_INET)
@@ -63,6 +72,7 @@
 
         self.assertEquals(cs.sock.getpeername(), self.sockaddr)
 
+    
 if __name__ == '__main__' :
     unittest.main()