cpython: 0518f32cb747 (original) (raw)
--- a/Lib/test/support.py +++ b/Lib/test/support.py @@ -33,16 +33,15 @@ except ImportError: "verbose", "use_resources", "max_memuse", "record_original_stdout", "get_original_stdout", "unload", "unlink", "rmtree", "forget", "is_resource_enabled", "requires", "find_unused_port", "bind_port",
- "IPV6_ENABLED", "is_jython", "TESTFN", "HOST", "SAVEDCWD", "temp_cwd", "findfile", "sortdict", "check_syntax_error", "open_urlresource", "check_warnings", "CleanImport", "EnvironmentVarGuard",
- "TransientResource", "captured_output", "captured_stdout",
- "time_out", "socket_peer_reset", "ioerror_peer_reset",
- "run_with_locale", 'temp_umask', "transient_internet",
- "set_memlimit", "bigmemtest", "bigaddrspacetest", "BasicTestRunner",
- "run_unittest", "run_doctest", "threading_setup", "threading_cleanup",
- "reap_children", "cpython_only", "check_impl_detail", "get_attribute",
- "swap_item", "swap_attr", "requires_IEEE_754",
- "TransientResource", "captured_output", "captured_stdout", "time_out",
- "socket_peer_reset", "ioerror_peer_reset", "run_with_locale", 'temp_umask',
- "transient_internet", "set_memlimit", "bigmemtest", "bigaddrspacetest",
- "BasicTestRunner", "run_unittest", "run_doctest", "threading_setup",
- "threading_cleanup", "reap_children", "cpython_only", "check_impl_detail",
- "get_attribute", "swap_item", "swap_attr", "requires_IEEE_754", "TestHandler", "Matcher", "can_symlink", "skip_unless_symlink"] @@ -381,6 +380,21 @@ def bind_port(sock, host=HOST): port = sock.getsockname()[1] return port +def _is_ipv6_enabled():
- """Check whether IPv6 is enabled on this host."""
- if socket.has_ipv6:
try:[](#l1.34)
sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)[](#l1.35)
sock.bind(('::1', 0))[](#l1.36)
except (socket.error, socket.gaierror):[](#l1.37)
pass[](#l1.38)
else:[](#l1.39)
sock.close()[](#l1.40)
return True[](#l1.41)
- return False
+ +IPV6_ENABLED = _is_ipv6_enabled() +
decorator for skipping tests on non-IEEE 754 platforms
requires_IEEE_754 = unittest.skipUnless( float.getformat("double").startswith("IEEE"),
--- a/Lib/test/test_ftplib.py +++ b/Lib/test/test_ftplib.py @@ -873,7 +873,7 @@ class TestTimeouts(TestCase): def test_main(): tests = [TestFTPClass, TestTimeouts]
--- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -24,18 +24,6 @@ try: except ImportError: fcntl = False -def try_address(host, port=0, family=socket.AF_INET):
- """Try to bind a socket on the given host:port and return True
- if that has been possible."""
- try:
sock = socket.socket(family, socket.SOCK_STREAM)[](#l3.11)
sock.bind((host, port))[](#l3.12)
- except (socket.error, socket.gaierror):
return False[](#l3.14)
- else:
sock.close()[](#l3.16)
return True[](#l3.17)
- def linux_version(): try: # platform.release() is something like '2.6.33.7-desktop-2mnb' @@ -46,7 +34,6 @@ def linux_version(): HOST = support.HOST MSG = 'Michael Gilfix was here\u1234\r\n'.encode('utf-8') ## test unicode string and carriage return -SUPPORTS_IPV6 = socket.has_ipv6 and try_address('::1', family=socket.AF_INET6) try: import _thread as thread @@ -645,7 +632,7 @@ class GeneralModuleTests(unittest.TestCa socket.getaddrinfo('localhost', 80) socket.getaddrinfo('127.0.0.1', 80) socket.getaddrinfo(None, 80)
if SUPPORTS_IPV6:[](#l3.34)
if support.IPV6_ENABLED:[](#l3.35) socket.getaddrinfo('::1', 80)[](#l3.36) # port can be a string service name such as "http", a numeric[](#l3.37) # port number or None[](#l3.38)
--- a/Misc/NEWS +++ b/Misc/NEWS @@ -523,6 +523,10 @@ Extensions Tests ----- +- Issue #11811: Factor out detection of IPv6 support on the current host