Merge pull request #1933 from dnephin/fix_scale_test_flakes
Fix flaky test
This commit is contained in:
commit
83c514f838
6 changed files with 49 additions and 14 deletions
|
|
@ -695,7 +695,7 @@ class ServiceTest(DockerClientTestCase):
|
|||
Test that calling scale on a service that has a custom container name
|
||||
results in warning output.
|
||||
"""
|
||||
service = self.create_service('web', container_name='custom-container')
|
||||
service = self.create_service('app', container_name='custom-container')
|
||||
self.assertEqual(service.custom_container_name(), 'custom-container')
|
||||
|
||||
service.scale(3)
|
||||
|
|
|
|||
|
|
@ -199,7 +199,6 @@ class ServiceStateTest(DockerClientTestCase):
|
|||
|
||||
self.assertEqual([c.is_running for c in containers], [False, True])
|
||||
|
||||
web = self.create_service('web', **options)
|
||||
self.assertEqual(
|
||||
('start', containers[0:1]),
|
||||
web.convergence_plan(),
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ class DockerClientTestCase(unittest.TestCase):
|
|||
|
||||
options = ServiceLoader(working_dir='.').make_service_dict(name, kwargs)
|
||||
|
||||
labels = options.setdefault('labels', {})
|
||||
labels['com.docker.compose.test-name'] = self.id()
|
||||
|
||||
return Service(
|
||||
project='composetest',
|
||||
client=self.client,
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ from docker.utils import LogConfig
|
|||
|
||||
from .. import mock
|
||||
from .. import unittest
|
||||
from compose.const import LABEL_CONFIG_HASH
|
||||
from compose.const import LABEL_ONE_OFF
|
||||
from compose.const import LABEL_PROJECT
|
||||
from compose.const import LABEL_SERVICE
|
||||
|
|
@ -163,6 +164,40 @@ class ServiceTest(unittest.TestCase):
|
|||
one_off=True)
|
||||
self.assertEqual(opts['name'], name)
|
||||
|
||||
def test_get_container_create_options_does_not_mutate_options(self):
|
||||
labels = {'thing': 'real'}
|
||||
environment = {'also': 'real'}
|
||||
service = Service(
|
||||
'foo',
|
||||
image='foo',
|
||||
labels=dict(labels),
|
||||
client=self.mock_client,
|
||||
environment=dict(environment),
|
||||
)
|
||||
self.mock_client.inspect_image.return_value = {'Id': 'abcd'}
|
||||
prev_container = mock.Mock(
|
||||
id='ababab',
|
||||
image_config={'ContainerConfig': {}})
|
||||
|
||||
opts = service._get_container_create_options(
|
||||
{},
|
||||
1,
|
||||
previous_container=prev_container)
|
||||
|
||||
self.assertEqual(service.options['labels'], labels)
|
||||
self.assertEqual(service.options['environment'], environment)
|
||||
|
||||
self.assertEqual(
|
||||
opts['labels'][LABEL_CONFIG_HASH],
|
||||
'b30306d0a73b67f67a45b99b88d36c359e470e6fa0c04dda1cf62d2087205b81')
|
||||
self.assertEqual(
|
||||
opts['environment'],
|
||||
{
|
||||
'affinity:container': '=ababab',
|
||||
'also': 'real',
|
||||
}
|
||||
)
|
||||
|
||||
def test_get_container_not_found(self):
|
||||
self.mock_client.containers.return_value = []
|
||||
service = Service('foo', client=self.mock_client, image='foo')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue