mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
`socket.fromfd` does not close the original file descriptor, so we have to explicitly close it to avoid a leak. See also: http://bugs.python.org/issue10099
19 lines
452 B
Python
19 lines
452 B
Python
try:
|
|
import unittest.mock as mock
|
|
except ImportError:
|
|
import mock
|
|
|
|
from gunicorn import sock
|
|
|
|
|
|
@mock.patch('os.close')
|
|
@mock.patch('os.getpid')
|
|
@mock.patch('os.unlink')
|
|
@mock.patch('socket.fromfd')
|
|
def test_unix_socket_close_unlink(fromfd, unlink, getpid, close):
|
|
fd = 42
|
|
gsock = sock.UnixSocket('test.sock', mock.Mock(), mock.Mock(), fd=fd)
|
|
gsock.close()
|
|
unlink.assert_called_with("test.sock")
|
|
close.assert_called_with(fd)
|