Unit tests passing again.

Signed-off-by: Daniel Nephin <dnephin@gmail.com>
This commit is contained in:
Daniel Nephin 2015-08-24 11:51:38 -04:00
parent 2943ac6812
commit feaa4a5f1a
5 changed files with 19 additions and 20 deletions

View File

@ -150,7 +150,7 @@ def process_errors(errors):
config_key = error.path[0] config_key = error.path[0]
required.append("Service '{}' option '{}' is invalid, {}".format(service_name, config_key, _clean_error_message(error.message))) required.append("Service '{}' option '{}' is invalid, {}".format(service_name, config_key, _clean_error_message(error.message)))
elif error.validator == 'dependencies': elif error.validator == 'dependencies':
dependency_key = error.validator_value.keys()[0] dependency_key = list(error.validator_value.keys())[0]
required_keys = ",".join(error.validator_value[dependency_key]) required_keys = ",".join(error.validator_value[dependency_key])
required.append("Invalid '{}' configuration for '{}' service: when defining '{}' you must set '{}' as well".format( required.append("Invalid '{}' configuration for '{}' service: when defining '{}' you must set '{}' as well".format(
dependency_key, service_name, dependency_key, required_keys)) dependency_key, service_name, dependency_key, required_keys))

View File

@ -103,11 +103,11 @@ class Service(object):
def containers(self, stopped=False, one_off=False, filters={}): def containers(self, stopped=False, one_off=False, filters={}):
filters.update({'label': self.labels(one_off=one_off)}) filters.update({'label': self.labels(one_off=one_off)})
containers = filter(None, [ containers = list(filter(None, [
Container.from_ps(self.client, container) Container.from_ps(self.client, container)
for container in self.client.containers( for container in self.client.containers(
all=stopped, all=stopped,
filters=filters)]) filters=filters)]))
if not containers: if not containers:
check_for_legacy_containers( check_for_legacy_containers(

View File

@ -3,11 +3,11 @@ import hashlib
import json import json
import logging import logging
import sys import sys
from Queue import Empty
from Queue import Queue
from threading import Thread from threading import Thread
from docker.errors import APIError from docker.errors import APIError
from six.moves.queue import Empty
from six.moves.queue import Queue
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View File

@ -18,6 +18,10 @@ def make_service_dict(name, service_dict, working_dir):
return config.ServiceLoader(working_dir=working_dir).make_service_dict(name, service_dict) return config.ServiceLoader(working_dir=working_dir).make_service_dict(name, service_dict)
def service_sort(services):
return sorted(services, key=itemgetter('name'))
class ConfigTest(unittest.TestCase): class ConfigTest(unittest.TestCase):
def test_load(self): def test_load(self):
service_dicts = config.load( service_dicts = config.load(
@ -32,8 +36,8 @@ class ConfigTest(unittest.TestCase):
) )
self.assertEqual( self.assertEqual(
sorted(service_dicts, key=itemgetter('name')), service_sort(service_dicts),
sorted([ service_sort([
{ {
'name': 'bar', 'name': 'bar',
'image': 'busybox', 'image': 'busybox',
@ -43,7 +47,7 @@ class ConfigTest(unittest.TestCase):
'name': 'foo', 'name': 'foo',
'image': 'busybox', 'image': 'busybox',
} }
], key=itemgetter('name')) ])
) )
def test_load_throws_error_when_not_dict(self): def test_load_throws_error_when_not_dict(self):
@ -684,12 +688,7 @@ class ExtendsTest(unittest.TestCase):
def test_extends(self): def test_extends(self):
service_dicts = load_from_filename('tests/fixtures/extends/docker-compose.yml') service_dicts = load_from_filename('tests/fixtures/extends/docker-compose.yml')
service_dicts = sorted( self.assertEqual(service_sort(service_dicts), service_sort([
service_dicts,
key=lambda sd: sd['name'],
)
self.assertEqual(service_dicts, [
{ {
'name': 'mydb', 'name': 'mydb',
'image': 'busybox', 'image': 'busybox',
@ -706,7 +705,7 @@ class ExtendsTest(unittest.TestCase):
"BAZ": "2", "BAZ": "2",
}, },
} }
]) ]))
def test_nested(self): def test_nested(self):
service_dicts = load_from_filename('tests/fixtures/extends/nested.yml') service_dicts = load_from_filename('tests/fixtures/extends/nested.yml')
@ -728,7 +727,7 @@ class ExtendsTest(unittest.TestCase):
We specify a 'file' key that is the filename we're already in. We specify a 'file' key that is the filename we're already in.
""" """
service_dicts = load_from_filename('tests/fixtures/extends/specify-file-as-self.yml') service_dicts = load_from_filename('tests/fixtures/extends/specify-file-as-self.yml')
self.assertEqual(service_dicts, [ self.assertEqual(service_sort(service_dicts), service_sort([
{ {
'environment': 'environment':
{ {
@ -749,7 +748,7 @@ class ExtendsTest(unittest.TestCase):
'image': 'busybox', 'image': 'busybox',
'name': 'web' 'name': 'web'
} }
]) ]))
def test_circular(self): def test_circular(self):
try: try:
@ -856,7 +855,7 @@ class ExtendsTest(unittest.TestCase):
config is valid and correctly extends from itself. config is valid and correctly extends from itself.
""" """
service_dicts = load_from_filename('tests/fixtures/extends/no-file-specified.yml') service_dicts = load_from_filename('tests/fixtures/extends/no-file-specified.yml')
self.assertEqual(service_dicts, [ self.assertEqual(service_sort(service_dicts), service_sort([
{ {
'name': 'myweb', 'name': 'myweb',
'image': 'busybox', 'image': 'busybox',
@ -872,7 +871,7 @@ class ExtendsTest(unittest.TestCase):
"BAZ": "3", "BAZ": "3",
} }
} }
]) ]))
def test_blacklisted_options(self): def test_blacklisted_options(self):
def load_config(): def load_config():

View File

@ -34,7 +34,7 @@ class ServiceTest(unittest.TestCase):
def test_containers(self): def test_containers(self):
service = Service('db', self.mock_client, 'myproject', image='foo') service = Service('db', self.mock_client, 'myproject', image='foo')
self.mock_client.containers.return_value = [] self.mock_client.containers.return_value = []
self.assertEqual(service.containers(), []) self.assertEqual(list(service.containers()), [])
def test_containers_with_containers(self): def test_containers_with_containers(self):
self.mock_client.containers.return_value = [ self.mock_client.containers.return_value = [