service_test.py 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. from __future__ import unicode_literals
  2. from __future__ import absolute_import
  3. from .. import unittest
  4. from fig import Service
  5. from fig.service import ConfigError
  6. class ServiceTest(unittest.TestCase):
  7. def test_name_validations(self):
  8. self.assertRaises(ConfigError, lambda: Service(name=''))
  9. self.assertRaises(ConfigError, lambda: Service(name=' '))
  10. self.assertRaises(ConfigError, lambda: Service(name='/'))
  11. self.assertRaises(ConfigError, lambda: Service(name='!'))
  12. self.assertRaises(ConfigError, lambda: Service(name='\xe2'))
  13. self.assertRaises(ConfigError, lambda: Service(name='_'))
  14. self.assertRaises(ConfigError, lambda: Service(name='____'))
  15. self.assertRaises(ConfigError, lambda: Service(name='foo_bar'))
  16. self.assertRaises(ConfigError, lambda: Service(name='__foo_bar__'))
  17. Service('a')
  18. Service('foo')
  19. def test_auto_start_defaults_true(self):
  20. service = Service(name='foo', project='bar')
  21. self.assertEqual(service.options['auto_start'], True)
  22. def test_project_validation(self):
  23. self.assertRaises(ConfigError, lambda: Service(name='foo', project='_'))
  24. Service(name='foo', project='bar')
  25. def test_config_validation(self):
  26. self.assertRaises(ConfigError, lambda: Service(name='foo', port=['8000']))
  27. Service(name='foo', ports=['8000'])