mirror of https://github.com/docker/docker-py.git
Merge pull request #2317 from docker/fix_socket_detach_helper
Fix socket detach helper
This commit is contained in:
commit
992e0dcdfb
|
@ -2,16 +2,16 @@ import functools
|
|||
import os
|
||||
import os.path
|
||||
import random
|
||||
import re
|
||||
import socket
|
||||
import tarfile
|
||||
import tempfile
|
||||
import time
|
||||
import re
|
||||
import six
|
||||
import socket
|
||||
|
||||
import docker
|
||||
import paramiko
|
||||
import pytest
|
||||
import six
|
||||
|
||||
|
||||
def make_tree(dirs, files):
|
||||
|
@ -119,13 +119,18 @@ def assert_cat_socket_detached_with_keys(sock, inputs):
|
|||
# If we're using a Unix socket, the sock.send call will fail with a
|
||||
# BrokenPipeError ; INET sockets will just stop receiving / sending data
|
||||
# but will not raise an error
|
||||
if getattr(sock, 'family', -9) == getattr(socket, 'AF_UNIX', -1):
|
||||
with pytest.raises(socket.error):
|
||||
sock.sendall(b'make sure the socket is closed\n')
|
||||
elif isinstance(sock, paramiko.Channel):
|
||||
if isinstance(sock, paramiko.Channel):
|
||||
with pytest.raises(OSError):
|
||||
sock.sendall(b'make sure the socket is closed\n')
|
||||
else:
|
||||
if getattr(sock, 'family', -9) == getattr(socket, 'AF_UNIX', -1):
|
||||
# We do not want to use pytest.raises here because future versions
|
||||
# of the daemon no longer cause this to raise an error.
|
||||
try:
|
||||
sock.sendall(b'make sure the socket is closed\n')
|
||||
except socket.error:
|
||||
return
|
||||
|
||||
sock.sendall(b"make sure the socket is closed\n")
|
||||
data = sock.recv(128)
|
||||
# New in 18.06: error message is broadcast over the socket when reading
|
||||
|
|
|
@ -1251,7 +1251,7 @@ class AttachContainerTest(BaseAPIIntegrationTest):
|
|||
output = self.client.attach(container, stream=False, logs=True)
|
||||
assert output == 'hello\n'.encode(encoding='ascii')
|
||||
|
||||
@pytest.mark.timeout(5)
|
||||
@pytest.mark.timeout(10)
|
||||
@pytest.mark.skipif(os.environ.get('DOCKER_HOST', '').startswith('ssh://'),
|
||||
reason='No cancellable streams over SSH')
|
||||
def test_attach_stream_and_cancel(self):
|
||||
|
|
Loading…
Reference in New Issue