◐ Shell
clean mode source ↗

Issue 28562: test_asyncio fails on Android upon calling getaddrinfo()

The error:
======================================================================
ERROR: test_create_connection_service_name (test.test_asyncio.test_base_events.BaseEventLoopWithSelectorTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/unittest/mock.py", line 1179, in patched
    return func(*args, **keywargs)
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_asyncio/test_base_events.py", line 1209, in test_create_connection_service_name
    t, p = self.loop.run_until_complete(coro)
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/asyncio/base_events.py", line 449, in run_until_complete
    return future.result()
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/socket.py", line 743, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 9] servname not supported for ai_socktype


The same error occurs also in issue 26936.
msg266362 lists the conditions under which getaddrinfo() fails on Android.

With this patch, the test succeeds on both Android API levels 21 and 23 (there is no level 22).