mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
gh-93852: Add test.support.create_unix_domain_name() (#93914)
test_asyncio, test_logging, test_socket and test_socketserver now create AF_UNIX domains in the current directory to no longer fail with OSError("AF_UNIX path too long") if the temporary directory (the TMPDIR environment variable) is too long. Modify the following tests to use create_unix_domain_name(): * test_asyncio * test_logging * test_socket * test_socketserver test_asyncio.utils: remove unused time import.
This commit is contained in:
parent
ffc228dd4e
commit
c5b750dc0b
7 changed files with 82 additions and 86 deletions
|
@ -4,31 +4,30 @@ from test.support import os_helper
|
|||
from test.support import socket_helper
|
||||
from test.support import threading_helper
|
||||
|
||||
import _thread as thread
|
||||
import array
|
||||
import contextlib
|
||||
import errno
|
||||
import io
|
||||
import itertools
|
||||
import socket
|
||||
import math
|
||||
import os
|
||||
import pickle
|
||||
import platform
|
||||
import queue
|
||||
import random
|
||||
import re
|
||||
import select
|
||||
import signal
|
||||
import socket
|
||||
import string
|
||||
import struct
|
||||
import sys
|
||||
import tempfile
|
||||
import threading
|
||||
import time
|
||||
import traceback
|
||||
import queue
|
||||
import sys
|
||||
import os
|
||||
import platform
|
||||
import array
|
||||
import contextlib
|
||||
from weakref import proxy
|
||||
import signal
|
||||
import math
|
||||
import pickle
|
||||
import re
|
||||
import struct
|
||||
import random
|
||||
import shutil
|
||||
import string
|
||||
import _thread as thread
|
||||
import threading
|
||||
try:
|
||||
import multiprocessing
|
||||
except ImportError:
|
||||
|
@ -605,17 +604,18 @@ class SocketTestBase(unittest.TestCase):
|
|||
|
||||
def setUp(self):
|
||||
self.serv = self.newSocket()
|
||||
self.addCleanup(self.close_server)
|
||||
self.bindServer()
|
||||
|
||||
def close_server(self):
|
||||
self.serv.close()
|
||||
self.serv = None
|
||||
|
||||
def bindServer(self):
|
||||
"""Bind server socket and set self.serv_addr to its address."""
|
||||
self.bindSock(self.serv)
|
||||
self.serv_addr = self.serv.getsockname()
|
||||
|
||||
def tearDown(self):
|
||||
self.serv.close()
|
||||
self.serv = None
|
||||
|
||||
|
||||
class SocketListeningTestMixin(SocketTestBase):
|
||||
"""Mixin to listen on the server socket."""
|
||||
|
@ -700,15 +700,10 @@ class UnixSocketTestBase(SocketTestBase):
|
|||
# can't send anything that might be problematic for a privileged
|
||||
# user running the tests.
|
||||
|
||||
def setUp(self):
|
||||
self.dir_path = tempfile.mkdtemp()
|
||||
self.addCleanup(os.rmdir, self.dir_path)
|
||||
super().setUp()
|
||||
|
||||
def bindSock(self, sock):
|
||||
path = tempfile.mktemp(dir=self.dir_path)
|
||||
socket_helper.bind_unix_socket(sock, path)
|
||||
path = socket_helper.create_unix_domain_name()
|
||||
self.addCleanup(os_helper.unlink, path)
|
||||
socket_helper.bind_unix_socket(sock, path)
|
||||
|
||||
class UnixStreamBase(UnixSocketTestBase):
|
||||
"""Base class for Unix-domain SOCK_STREAM tests."""
|
||||
|
@ -1905,17 +1900,18 @@ class GeneralModuleTests(unittest.TestCase):
|
|||
self._test_socket_fileno(s, socket.AF_INET6, socket.SOCK_STREAM)
|
||||
|
||||
if hasattr(socket, "AF_UNIX"):
|
||||
tmpdir = tempfile.mkdtemp()
|
||||
self.addCleanup(shutil.rmtree, tmpdir)
|
||||
unix_name = socket_helper.create_unix_domain_name()
|
||||
self.addCleanup(os_helper.unlink, unix_name)
|
||||
|
||||
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
self.addCleanup(s.close)
|
||||
try:
|
||||
s.bind(os.path.join(tmpdir, 'socket'))
|
||||
except PermissionError:
|
||||
pass
|
||||
else:
|
||||
self._test_socket_fileno(s, socket.AF_UNIX,
|
||||
socket.SOCK_STREAM)
|
||||
with s:
|
||||
try:
|
||||
s.bind(unix_name)
|
||||
except PermissionError:
|
||||
pass
|
||||
else:
|
||||
self._test_socket_fileno(s, socket.AF_UNIX,
|
||||
socket.SOCK_STREAM)
|
||||
|
||||
def test_socket_fileno_rejects_float(self):
|
||||
with self.assertRaises(TypeError):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue