| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- from __future__ import unicode_literals
- from __future__ import absolute_import
- from .. import unittest
- from fig import Service
- from fig.service import ConfigError, split_port
- 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'])
- 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:1000:2000/udp")
- self.assertEqual(internal_port, "2000/udp")
- 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")
- def test_split_domainname_none(self):
- service = Service('foo',
- hostname = 'name',
- )
- service.next_container_name = lambda x: 'foo'
- opts = service._get_container_create_options({})
- self.assertEqual(opts['hostname'], 'name', 'hostname')
- self.assertFalse('domainname' in opts, 'domainname')
- def test_split_domainname_fqdn(self):
- service = Service('foo',
- hostname = 'name.domain.tld',
- )
- service.next_container_name = lambda x: 'foo'
- opts = service._get_container_create_options({})
- self.assertEqual(opts['hostname'], 'name', 'hostname')
- self.assertEqual(opts['domainname'], 'domain.tld', 'domainname')
- def test_split_domainname_both(self):
- service = Service('foo',
- hostname = 'name',
- domainname = 'domain.tld',
- )
- service.next_container_name = lambda x: 'foo'
- opts = service._get_container_create_options({})
- self.assertEqual(opts['hostname'], 'name', 'hostname')
- self.assertEqual(opts['domainname'], 'domain.tld', 'domainname')
- def test_split_domainname_weird(self):
- service = Service('foo',
- hostname = 'name.sub',
- domainname = 'domain.tld',
- )
- service.next_container_name = lambda x: 'foo'
- opts = service._get_container_create_options({})
- self.assertEqual(opts['hostname'], 'name.sub', 'hostname')
- self.assertEqual(opts['domainname'], 'domain.tld', 'domainname')
|