2014-04-25 23:58:21 +02:00
|
|
|
from __future__ import unicode_literals
|
|
|
|
from __future__ import absolute_import
|
|
|
|
from .. import unittest
|
|
|
|
from fig import Service
|
2014-06-25 12:49:54 +02:00
|
|
|
from fig.service import ConfigError, split_port
|
2014-04-25 23:58:21 +02:00
|
|
|
|
|
|
|
class ServiceTest(unittest.TestCase):
|
|
|
|
def test_name_validations(self):
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name=''))
|
|
|
|
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name=' '))
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='/'))
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='!'))
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='\xe2'))
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='_'))
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='____'))
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='foo_bar'))
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='__foo_bar__'))
|
|
|
|
|
|
|
|
Service('a')
|
|
|
|
Service('foo')
|
|
|
|
|
|
|
|
def test_project_validation(self):
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='foo', project='_'))
|
|
|
|
Service(name='foo', project='bar')
|
|
|
|
|
|
|
|
def test_config_validation(self):
|
|
|
|
self.assertRaises(ConfigError, lambda: Service(name='foo', port=['8000']))
|
|
|
|
Service(name='foo', ports=['8000'])
|
2014-06-25 12:49:54 +02:00
|
|
|
|
|
|
|
def test_split_port(self):
|
|
|
|
internal_port, external_port = split_port("127.0.0.1:1000:2000")
|
|
|
|
self.assertEqual(internal_port, "2000")
|
|
|
|
self.assertEqual(external_port, ("127.0.0.1", "1000"))
|
|
|
|
|
|
|
|
internal_port, external_port = split_port("127.0.0.1::2000")
|
|
|
|
self.assertEqual(internal_port, "2000")
|
|
|
|
self.assertEqual(external_port, ("127.0.0.1",))
|
|
|
|
|
|
|
|
internal_port, external_port = split_port("1000:2000")
|
|
|
|
self.assertEqual(internal_port, "2000")
|
|
|
|
self.assertEqual(external_port, "1000")
|
|
|
|
|
|
|
|
|