Skip to content

Commit

Permalink
deps: upgrade websocket-client to latest (docker#3022)
Browse files Browse the repository at this point in the history
* Upgrade websocket-client to latest
* Add basic integration test for streaming logs via websocket

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
  • Loading branch information
milas authored Jul 29, 2022
1 parent 05e1434 commit 26064dd
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ paramiko==2.11.0
pywin32==304; sys_platform == 'win32'
requests==2.28.1
urllib3==1.26.11
websocket-client==0.56.0
websocket-client==1.3.3
21 changes: 20 additions & 1 deletion tests/integration/api_container_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -1197,7 +1197,7 @@ def test_run_container_streaming(self):
sock = self.client.attach_socket(container, ws=False)
assert sock.fileno() > -1

def test_run_container_reading_socket(self):
def test_run_container_reading_socket_http(self):
line = 'hi there and stuff and things, words!'
# `echo` appends CRLF, `printf` doesn't
command = f"printf '{line}'"
Expand All @@ -1217,6 +1217,25 @@ def test_run_container_reading_socket(self):
data = read_exactly(pty_stdout, next_size)
assert data.decode('utf-8') == line

@pytest.mark.xfail(condition=bool(os.environ.get('DOCKER_CERT_PATH', '')),
reason='DOCKER_CERT_PATH not respected for websockets')
def test_run_container_reading_socket_ws(self):
line = 'hi there and stuff and things, words!'
# `echo` appends CRLF, `printf` doesn't
command = f"printf '{line}'"
container = self.client.create_container(TEST_IMG, command,
detach=True, tty=False)
self.tmp_containers.append(container)

opts = {"stdout": 1, "stream": 1, "logs": 1}
pty_stdout = self.client.attach_socket(container, opts, ws=True)
self.addCleanup(pty_stdout.close)

self.client.start(container)

data = pty_stdout.recv()
assert data.decode('utf-8') == line

@pytest.mark.timeout(10)
def test_attach_no_stream(self):
container = self.client.create_container(
Expand Down

0 comments on commit 26064dd

Please sign in to comment.