From 2e67cd1cc7ec4b00afadb9609bb235e3a2f3a0e3 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Mon, 22 Apr 2019 18:01:11 -0700 Subject: [PATCH 1/3] Improve socket_detached test helper to support future versions of the daemon Signed-off-by: Joffrey F --- tests/helpers.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/helpers.py b/tests/helpers.py index f912bd8d..9e5d2ab4 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -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 From a2a2d100e841b7bb37b9c3d805ca25260f0b3bda Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Mon, 22 Apr 2019 18:03:19 -0700 Subject: [PATCH 2/3] Reorder imports Signed-off-by: Joffrey F --- tests/helpers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/helpers.py b/tests/helpers.py index 9e5d2ab4..f344e1c3 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -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): From 62c8bcbbb600cbe26e3e12ed95207ffe63c40fc8 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Wed, 1 May 2019 00:47:16 -0700 Subject: [PATCH 3/3] Increase timeout on test with long sleeps Signed-off-by: Joffrey F --- tests/integration/api_container_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/api_container_test.py b/tests/integration/api_container_test.py index 730c9eeb..9b770c71 100644 --- a/tests/integration/api_container_test.py +++ b/tests/integration/api_container_test.py @@ -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):