mirror of https://github.com/docker/docker-py.git
81 lines
2.3 KiB
Python
81 lines
2.3 KiB
Python
import json
|
|
|
|
from . import fake_api
|
|
from .api_test import (
|
|
DEFAULT_TIMEOUT_SECONDS,
|
|
BaseAPIClientTest,
|
|
fake_request,
|
|
url_prefix,
|
|
)
|
|
|
|
|
|
class ExecTest(BaseAPIClientTest):
|
|
def test_exec_create(self):
|
|
self.client.exec_create(fake_api.FAKE_CONTAINER_ID, ['ls', '-1'])
|
|
|
|
args = fake_request.call_args
|
|
assert 'POST' == args[0][0], url_prefix + 'containers/{}/exec'.format(
|
|
fake_api.FAKE_CONTAINER_ID
|
|
)
|
|
|
|
assert json.loads(args[1]['data']) == {
|
|
'Tty': False,
|
|
'AttachStdout': True,
|
|
'Container': fake_api.FAKE_CONTAINER_ID,
|
|
'Cmd': ['ls', '-1'],
|
|
'Privileged': False,
|
|
'AttachStdin': False,
|
|
'AttachStderr': True,
|
|
'User': ''
|
|
}
|
|
|
|
assert args[1]['headers'] == {'Content-Type': 'application/json'}
|
|
|
|
def test_exec_start(self):
|
|
self.client.exec_start(fake_api.FAKE_EXEC_ID)
|
|
|
|
args = fake_request.call_args
|
|
assert args[0][1] == f"{url_prefix}exec/{fake_api.FAKE_EXEC_ID}/start"
|
|
|
|
assert json.loads(args[1]['data']) == {
|
|
'Tty': False,
|
|
'Detach': False,
|
|
}
|
|
|
|
assert args[1]['headers'] == {
|
|
'Content-Type': 'application/json',
|
|
'Connection': 'Upgrade',
|
|
'Upgrade': 'tcp'
|
|
}
|
|
|
|
def test_exec_start_detached(self):
|
|
self.client.exec_start(fake_api.FAKE_EXEC_ID, detach=True)
|
|
|
|
args = fake_request.call_args
|
|
assert args[0][1] == f"{url_prefix}exec/{fake_api.FAKE_EXEC_ID}/start"
|
|
|
|
assert json.loads(args[1]['data']) == {
|
|
'Tty': False,
|
|
'Detach': True
|
|
}
|
|
|
|
assert args[1]['headers'] == {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
|
|
def test_exec_inspect(self):
|
|
self.client.exec_inspect(fake_api.FAKE_EXEC_ID)
|
|
|
|
args = fake_request.call_args
|
|
assert args[0][1] == f"{url_prefix}exec/{fake_api.FAKE_EXEC_ID}/json"
|
|
|
|
def test_exec_resize(self):
|
|
self.client.exec_resize(fake_api.FAKE_EXEC_ID, height=20, width=60)
|
|
|
|
fake_request.assert_called_with(
|
|
'POST',
|
|
f"{url_prefix}exec/{fake_api.FAKE_EXEC_ID}/resize",
|
|
params={'h': 20, 'w': 60},
|
|
timeout=DEFAULT_TIMEOUT_SECONDS
|
|
)
|