mirror of
https://github.com/docker/docs.git
synced 2026-03-31 08:18:55 +07:00
Moving service name and dict out of the function make_service_dict and into __init__. We always call make_service_dict with those so let's put them in the initialiser. Slightly cleaner design intent. The whole purpose of the ServiceLoader is to take a service name&service dictionary then validate, process and return service dictionaries ready to be created. This is also another step towards cleaning the code up so we can interpolate and validate an extended dictionary. Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
from __future__ import absolute_import
|
|
from __future__ import unicode_literals
|
|
|
|
from .. import unittest
|
|
from compose.cli.docker_client import docker_client
|
|
from compose.config.config import ServiceLoader
|
|
from compose.const import LABEL_PROJECT
|
|
from compose.progress_stream import stream_output
|
|
from compose.service import Service
|
|
|
|
|
|
class DockerClientTestCase(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.client = docker_client()
|
|
|
|
def tearDown(self):
|
|
for c in self.client.containers(
|
|
all=True,
|
|
filters={'label': '%s=composetest' % LABEL_PROJECT}):
|
|
self.client.kill(c['Id'])
|
|
self.client.remove_container(c['Id'])
|
|
for i in self.client.images(
|
|
filters={'label': 'com.docker.compose.test_image'}):
|
|
self.client.remove_image(i)
|
|
|
|
def create_service(self, name, **kwargs):
|
|
if 'image' not in kwargs and 'build' not in kwargs:
|
|
kwargs['image'] = 'busybox:latest'
|
|
|
|
if 'command' not in kwargs:
|
|
kwargs['command'] = ["top"]
|
|
|
|
options = ServiceLoader(working_dir='.', filename=None, service_name=name, service_dict=kwargs).make_service_dict()
|
|
|
|
labels = options.setdefault('labels', {})
|
|
labels['com.docker.compose.test-name'] = self.id()
|
|
|
|
return Service(
|
|
project='composetest',
|
|
client=self.client,
|
|
**options
|
|
)
|
|
|
|
def check_build(self, *args, **kwargs):
|
|
kwargs.setdefault('rm', True)
|
|
build_output = self.client.build(*args, **kwargs)
|
|
stream_output(build_output, open('/dev/null', 'w'))
|