diff options
Diffstat (limited to 'tests/unit/errors_test.py')
-rw-r--r-- | tests/unit/errors_test.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/tests/unit/errors_test.py b/tests/unit/errors_test.py index b78af4e..9678669 100644 --- a/tests/unit/errors_test.py +++ b/tests/unit/errors_test.py @@ -2,8 +2,10 @@ import unittest import requests -from docker.errors import (APIError, DockerException, +from docker.errors import (APIError, ContainerError, DockerException, create_unexpected_kwargs_error) +from .fake_api import FAKE_CONTAINER_ID, FAKE_IMAGE_ID +from .fake_api_client import make_fake_client class APIErrorTest(unittest.TestCase): @@ -77,6 +79,36 @@ class APIErrorTest(unittest.TestCase): assert err.is_client_error() is True +class ContainerErrorTest(unittest.TestCase): + def test_container_without_stderr(self): + """The massage does not contain stderr""" + client = make_fake_client() + container = client.containers.get(FAKE_CONTAINER_ID) + command = "echo Hello World" + exit_status = 42 + image = FAKE_IMAGE_ID + stderr = None + + err = ContainerError(container, exit_status, command, image, stderr) + msg = ("Command '{}' in image '{}' returned non-zero exit status {}" + ).format(command, image, exit_status, stderr) + assert str(err) == msg + + def test_container_with_stderr(self): + """The massage contains stderr""" + client = make_fake_client() + container = client.containers.get(FAKE_CONTAINER_ID) + command = "echo Hello World" + exit_status = 42 + image = FAKE_IMAGE_ID + stderr = "Something went wrong" + + err = ContainerError(container, exit_status, command, image, stderr) + msg = ("Command '{}' in image '{}' returned non-zero exit status {}: " + "{}").format(command, image, exit_status, stderr) + assert str(err) == msg + + class CreateUnexpectedKwargsErrorTest(unittest.TestCase): def test_create_unexpected_kwargs_error_single(self): e = create_unexpected_kwargs_error('f', {'foo': 'bar'}) |