diff -r ad92e63de42c Lib/test/test_asyncio/test_events.py --- a/Lib/test/test_asyncio/test_events.py Thu Feb 20 23:26:12 2014 +0100 +++ b/Lib/test/test_asyncio/test_events.py Fri Feb 21 00:33:36 2014 +0100 @@ -41,13 +41,19 @@ def data_file(filename): raise FileNotFoundError(filename) -def osx_tiger(): - """Return True if the platform is Mac OS 10.4 or older.""" - if sys.platform != 'darwin': +# Issue #20682: On Mac OS X Tiger and AIX, getsockname() returns a zero-length +# address for UNIX socket. +def broken_unix_getsockname(): + """Return True if getsockname() does not work on UNIX socket, + False otherwise.""" + if sys.platform == 'darwin': + version = platform.mac_ver()[0] + version = tuple(map(int, version.split('.'))) + return version < (10, 5) + elif sys.platform == 'aix': + return True + else: return False - version = platform.mac_ver()[0] - version = tuple(map(int, version.split('.'))) - return version < (10, 5) ONLYCERT = data_file('ssl_cert.pem') @@ -527,9 +533,7 @@ class EventLoopTestsMixin: @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'No UNIX Sockets') def test_create_unix_connection(self): - # Issue #20682: On Mac OS X Tiger, getsockname() returns a - # zero-length address for UNIX socket. - check_sockname = not osx_tiger() + check_sockname = not broken_unix_getsockname() with test_utils.run_test_unix_server() as httpd: conn_fut = self.loop.create_unix_connection( @@ -589,9 +593,7 @@ class EventLoopTestsMixin: @unittest.skipIf(ssl is None, 'No ssl module') @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'No UNIX Sockets') def test_create_ssl_unix_connection(self): - # Issue #20682: On Mac OS X Tiger, getsockname() returns a - # zero-length address for UNIX socket. - check_sockname = not osx_tiger() + check_sockname = not broken_unix_getsockname() with test_utils.run_test_unix_server(use_ssl=True) as httpd: conn_fut = self.loop.create_unix_connection(