]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Fix tcpclient test when ipv6 is available but 'localhost' is only ipv4.
authorBen Darnell <ben@bendarnell.com>
Sun, 18 May 2014 23:56:17 +0000 (19:56 -0400)
committerBen Darnell <ben@bendarnell.com>
Sun, 18 May 2014 23:56:17 +0000 (19:56 -0400)
tornado/test/tcpclient_test.py

index 48099c66b74896aab546242acce935f4086781da..402488c3f3ec86151a562b79b491b1b0718b63da 100644 (file)
@@ -66,6 +66,13 @@ class TCPClientTest(AsyncTestCase):
         self.stop_server()
         super(TCPClientTest, self).tearDown()
 
+    def skipIfLocalhostV4(self):
+        families = set(sockaddr[0]
+                       for sockaddr in socket.getaddrinfo('localhost', 0))
+        if socket.AF_INET6 not in families:
+            self.skipTest("localhost does not resolve to ipv6")
+
+
     @gen_test
     def do_test_connect(self, family, host):
         port = self.start_server(family)
@@ -83,10 +90,12 @@ class TCPClientTest(AsyncTestCase):
 
     @skipIfNoIPv6
     def test_connect_ipv6_ipv6(self):
+        self.skipIfLocalhostV4()
         self.do_test_connect(socket.AF_INET6, '::1')
 
     @skipIfNoIPv6
     def test_connect_ipv6_dual(self):
+        self.skipIfLocalhostV4()
         if Resolver.configured_class().__name__.endswith('TwistedResolver'):
             self.skipTest('TwistedResolver does not support multiple addresses')
         self.do_test_connect(socket.AF_INET6, 'localhost')
@@ -96,6 +105,7 @@ class TCPClientTest(AsyncTestCase):
 
     @skipIfNoIPv6
     def test_connect_unspec_ipv6(self):
+        self.skipIfLocalhostV4()
         self.do_test_connect(socket.AF_UNSPEC, '::1')
 
     def test_connect_unspec_dual(self):