2014-04-25 23:58:21 +02:00
|
|
|
from __future__ import unicode_literals
|
|
|
|
from .. import unittest
|
|
|
|
from fig.service import Service
|
|
|
|
from fig.project import Project, ConfigurationError
|
|
|
|
|
|
|
|
class ProjectTest(unittest.TestCase):
|
|
|
|
def test_from_dict(self):
|
|
|
|
project = Project.from_dicts('figtest', [
|
|
|
|
{
|
|
|
|
'name': 'web',
|
|
|
|
'image': 'ubuntu'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'name': 'db',
|
|
|
|
'image': 'ubuntu'
|
2014-06-07 15:03:53 +02:00
|
|
|
},
|
2014-04-25 23:58:21 +02:00
|
|
|
], None)
|
|
|
|
self.assertEqual(len(project.services), 2)
|
|
|
|
self.assertEqual(project.get_service('web').name, 'web')
|
|
|
|
self.assertEqual(project.get_service('web').options['image'], 'ubuntu')
|
|
|
|
self.assertEqual(project.get_service('db').name, 'db')
|
|
|
|
self.assertEqual(project.get_service('db').options['image'], 'ubuntu')
|
|
|
|
|
|
|
|
def test_from_dict_sorts_in_dependency_order(self):
|
|
|
|
project = Project.from_dicts('figtest', [
|
|
|
|
{
|
|
|
|
'name': 'web',
|
|
|
|
'image': 'ubuntu',
|
|
|
|
'links': ['db'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'name': 'db',
|
|
|
|
'image': 'ubuntu'
|
|
|
|
}
|
|
|
|
], None)
|
|
|
|
|
|
|
|
self.assertEqual(project.services[0].name, 'db')
|
|
|
|
self.assertEqual(project.services[1].name, 'web')
|
|
|
|
|
|
|
|
def test_from_config(self):
|
|
|
|
project = Project.from_config('figtest', {
|
|
|
|
'web': {
|
|
|
|
'image': 'ubuntu',
|
|
|
|
},
|
|
|
|
'db': {
|
|
|
|
'image': 'ubuntu',
|
|
|
|
},
|
|
|
|
}, None)
|
|
|
|
self.assertEqual(len(project.services), 2)
|
|
|
|
self.assertEqual(project.get_service('web').name, 'web')
|
|
|
|
self.assertEqual(project.get_service('web').options['image'], 'ubuntu')
|
|
|
|
self.assertEqual(project.get_service('db').name, 'db')
|
|
|
|
self.assertEqual(project.get_service('db').options['image'], 'ubuntu')
|
|
|
|
|
|
|
|
def test_from_config_throws_error_when_not_dict(self):
|
|
|
|
with self.assertRaises(ConfigurationError):
|
|
|
|
project = Project.from_config('figtest', {
|
|
|
|
'web': 'ubuntu',
|
|
|
|
}, None)
|
|
|
|
|
|
|
|
def test_get_service(self):
|
|
|
|
web = Service(
|
|
|
|
project='figtest',
|
|
|
|
name='web',
|
|
|
|
client=None,
|
|
|
|
image="ubuntu",
|
|
|
|
)
|
|
|
|
project = Project('test', [web], None)
|
|
|
|
self.assertEqual(project.get_service('web'), web)
|
2014-06-07 15:29:28 +02:00
|
|
|
|
|
|
|
def test_get_services_returns_all_auto_started_without_args(self):
|
|
|
|
web = Service(
|
|
|
|
project='figtest',
|
|
|
|
name='web',
|
|
|
|
)
|
|
|
|
console = Service(
|
|
|
|
project='figtest',
|
|
|
|
name='console',
|
|
|
|
auto_start=False
|
|
|
|
)
|
|
|
|
project = Project('test', [web, console], None)
|
|
|
|
self.assertEqual(project.get_services(), [web])
|
|
|
|
|
|
|
|
def test_get_services_returns_listed_services_with_args(self):
|
|
|
|
web = Service(
|
|
|
|
project='figtest',
|
|
|
|
name='web',
|
|
|
|
)
|
|
|
|
console = Service(
|
|
|
|
project='figtest',
|
|
|
|
name='console',
|
|
|
|
auto_start=False
|
|
|
|
)
|
|
|
|
project = Project('test', [web, console], None)
|
|
|
|
self.assertEqual(project.get_services(['console']), [console])
|