summaryrefslogtreecommitdiff
path: root/tests/unit/errors_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/errors_test.py')
-rw-r--r--tests/unit/errors_test.py34
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'})