mirror of https://github.com/docker/docker-py.git
Merge branch 'main' into fix_dockerfile
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
This commit is contained in:
commit
1f55b9691e
|
|
@ -1,6 +1,6 @@
|
|||
# Docker SDK for Python
|
||||
|
||||
[](https://github.com/docker/docker-py/actions/workflows/ci.yml/)
|
||||
[](https://github.com/docker/docker-py/actions/workflows/ci.yml)
|
||||
|
||||
A Python library for the Docker Engine API. It lets you do anything the `docker` command does, but from within Python apps – run containers, manage containers, manage Swarms, etc.
|
||||
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ class ContainerApiMixin:
|
|||
|
||||
@utils.check_resource('container')
|
||||
def commit(self, container, repository=None, tag=None, message=None,
|
||||
author=None, changes=None, conf=None):
|
||||
author=None, pause=True, changes=None, conf=None):
|
||||
"""
|
||||
Commit a container to an image. Similar to the ``docker commit``
|
||||
command.
|
||||
|
|
@ -123,6 +123,7 @@ class ContainerApiMixin:
|
|||
tag (str): The tag to push
|
||||
message (str): A commit message
|
||||
author (str): The name of the author
|
||||
pause (bool): Whether to pause the container before committing
|
||||
changes (str): Dockerfile instructions to apply while committing
|
||||
conf (dict): The configuration for the container. See the
|
||||
`Engine API documentation
|
||||
|
|
@ -139,6 +140,7 @@ class ContainerApiMixin:
|
|||
'tag': tag,
|
||||
'comment': message,
|
||||
'author': author,
|
||||
'pause': pause,
|
||||
'changes': changes
|
||||
}
|
||||
u = self._url("/commit")
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ def create_api_error_from_http_exception(e):
|
|||
try:
|
||||
explanation = response.json()['message']
|
||||
except ValueError:
|
||||
explanation = (response.content or '').strip()
|
||||
explanation = (response.text or '').strip()
|
||||
cls = APIError
|
||||
if response.status_code == 404:
|
||||
explanation_msg = (explanation or '').lower()
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ class Container(Model):
|
|||
tag (str): The tag to push
|
||||
message (str): A commit message
|
||||
author (str): The name of the author
|
||||
pause (bool): Whether to pause the container before committing
|
||||
changes (str): Dockerfile instructions to apply while committing
|
||||
conf (dict): The configuration for the container. See the
|
||||
`Engine API documentation
|
||||
|
|
|
|||
|
|
@ -122,8 +122,8 @@ class CreateContainerTest(BaseAPIIntegrationTest):
|
|||
self.client.wait(id)
|
||||
with pytest.raises(docker.errors.APIError) as exc:
|
||||
self.client.remove_container(id)
|
||||
err = exc.value.explanation
|
||||
assert 'You cannot remove ' in err
|
||||
err = exc.value.explanation.lower()
|
||||
assert 'stop the container before' in err
|
||||
self.client.remove_container(id, force=True)
|
||||
|
||||
def test_create_container_with_volumes_from(self):
|
||||
|
|
@ -1392,7 +1392,7 @@ class GetContainerStatsTest(BaseAPIIntegrationTest):
|
|||
response = self.client.stats(container, stream=0)
|
||||
self.client.kill(container)
|
||||
|
||||
assert type(response) == dict
|
||||
assert isinstance(response, dict)
|
||||
for key in ['read', 'networks', 'precpu_stats', 'cpu_stats',
|
||||
'memory_stats', 'blkio_stats']:
|
||||
assert key in response
|
||||
|
|
@ -1405,7 +1405,7 @@ class GetContainerStatsTest(BaseAPIIntegrationTest):
|
|||
self.client.start(container)
|
||||
stream = self.client.stats(container)
|
||||
for chunk in stream:
|
||||
assert type(chunk) == dict
|
||||
assert isinstance(chunk, dict)
|
||||
for key in ['read', 'network', 'precpu_stats', 'cpu_stats',
|
||||
'memory_stats', 'blkio_stats']:
|
||||
assert key in chunk
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class ListImagesTest(BaseAPIIntegrationTest):
|
|||
|
||||
def test_images_quiet(self):
|
||||
res1 = self.client.images(quiet=True)
|
||||
assert type(res1[0]) == str
|
||||
assert isinstance(res1[0], str)
|
||||
|
||||
|
||||
class PullImageTest(BaseAPIIntegrationTest):
|
||||
|
|
@ -43,7 +43,7 @@ class PullImageTest(BaseAPIIntegrationTest):
|
|||
pass
|
||||
res = self.client.pull('hello-world')
|
||||
self.tmp_imgs.append('hello-world')
|
||||
assert type(res) == str
|
||||
assert isinstance(res, str)
|
||||
assert len(self.client.images('hello-world')) >= 1
|
||||
img_info = self.client.inspect_image('hello-world')
|
||||
assert 'Id' in img_info
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class ErrorsTest(BaseAPIIntegrationTest):
|
|||
self.client.start(container['Id'])
|
||||
with pytest.raises(APIError) as cm:
|
||||
self.client.remove_container(container['Id'])
|
||||
explanation = cm.value.explanation
|
||||
assert 'You cannot remove a running container' in explanation
|
||||
explanation = cm.value.explanation.lower()
|
||||
assert 'stop the container before' in explanation
|
||||
assert '{"message":' not in explanation
|
||||
self.client.remove_container(container['Id'], force=True)
|
||||
|
|
|
|||
|
|
@ -102,6 +102,7 @@ class ImageTest(BaseAPIClientTest):
|
|||
'tag': None,
|
||||
'container': fake_api.FAKE_CONTAINER_ID,
|
||||
'author': None,
|
||||
'pause': True,
|
||||
'changes': None
|
||||
},
|
||||
timeout=DEFAULT_TIMEOUT_SECONDS
|
||||
|
|
|
|||
Loading…
Reference in New Issue