Catch APIError while printing container logs
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
3dec600d82
commit
3fcd648ba2
2 changed files with 31 additions and 2 deletions
|
|
@ -4,7 +4,9 @@ from __future__ import unicode_literals
|
|||
import itertools
|
||||
|
||||
import pytest
|
||||
import requests
|
||||
import six
|
||||
from docker.errors import APIError
|
||||
from six.moves.queue import Queue
|
||||
|
||||
from compose.cli.log_printer import build_log_generator
|
||||
|
|
@ -56,6 +58,26 @@ def test_wait_on_exit():
|
|||
assert expected == wait_on_exit(mock_container)
|
||||
|
||||
|
||||
def test_wait_on_exit_raises():
|
||||
status_code = 500
|
||||
|
||||
def mock_wait():
|
||||
resp = requests.Response()
|
||||
resp.status_code = status_code
|
||||
raise APIError('Bad server', resp)
|
||||
|
||||
mock_container = mock.Mock(
|
||||
spec=Container,
|
||||
name='cname',
|
||||
wait=mock_wait
|
||||
)
|
||||
|
||||
expected = 'Unexpected API error for {} (HTTP code {})\n'.format(
|
||||
mock_container.name, status_code,
|
||||
)
|
||||
assert expected in wait_on_exit(mock_container)
|
||||
|
||||
|
||||
def test_build_no_log_generator(mock_container):
|
||||
mock_container.has_api_logs = False
|
||||
mock_container.log_driver = 'none'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue