project_test.py 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. from __future__ import unicode_literals
  2. from .. import unittest
  3. from fig.service import Service
  4. from fig.project import Project, ConfigurationError
  5. class ProjectTest(unittest.TestCase):
  6. def test_from_dict(self):
  7. project = Project.from_dicts('figtest', [
  8. {
  9. 'name': 'web',
  10. 'image': 'ubuntu'
  11. },
  12. {
  13. 'name': 'db',
  14. 'image': 'ubuntu'
  15. },
  16. ], None)
  17. self.assertEqual(len(project.services), 2)
  18. self.assertEqual(project.get_service('web').name, 'web')
  19. self.assertEqual(project.get_service('web').options['image'], 'ubuntu')
  20. self.assertEqual(project.get_service('db').name, 'db')
  21. self.assertEqual(project.get_service('db').options['image'], 'ubuntu')
  22. def test_from_dict_sorts_in_dependency_order(self):
  23. project = Project.from_dicts('figtest', [
  24. {
  25. 'name': 'web',
  26. 'image': 'ubuntu',
  27. 'links': ['db'],
  28. },
  29. {
  30. 'name': 'db',
  31. 'image': 'ubuntu'
  32. }
  33. ], None)
  34. self.assertEqual(project.services[0].name, 'db')
  35. self.assertEqual(project.services[1].name, 'web')
  36. def test_from_config(self):
  37. project = Project.from_config('figtest', {
  38. 'web': {
  39. 'image': 'ubuntu',
  40. },
  41. 'db': {
  42. 'image': 'ubuntu',
  43. },
  44. }, None)
  45. self.assertEqual(len(project.services), 2)
  46. self.assertEqual(project.get_service('web').name, 'web')
  47. self.assertEqual(project.get_service('web').options['image'], 'ubuntu')
  48. self.assertEqual(project.get_service('db').name, 'db')
  49. self.assertEqual(project.get_service('db').options['image'], 'ubuntu')
  50. def test_from_config_throws_error_when_not_dict(self):
  51. with self.assertRaises(ConfigurationError):
  52. project = Project.from_config('figtest', {
  53. 'web': 'ubuntu',
  54. }, None)
  55. def test_get_service(self):
  56. web = Service(
  57. project='figtest',
  58. name='web',
  59. client=None,
  60. image="ubuntu",
  61. )
  62. project = Project('test', [web], None)
  63. self.assertEqual(project.get_service('web'), web)
  64. def test_get_services_returns_all_auto_started_without_args(self):
  65. web = Service(
  66. project='figtest',
  67. name='web',
  68. )
  69. console = Service(
  70. project='figtest',
  71. name='console',
  72. auto_start=False
  73. )
  74. project = Project('test', [web, console], None)
  75. self.assertEqual(project.get_services(), [web])
  76. def test_get_services_returns_listed_services_with_args(self):
  77. web = Service(
  78. project='figtest',
  79. name='web',
  80. )
  81. console = Service(
  82. project='figtest',
  83. name='console',
  84. auto_start=False
  85. )
  86. project = Project('test', [web, console], None)
  87. self.assertEqual(project.get_services(['console']), [console])