legacy_test.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import mock
  2. from compose import legacy
  3. from compose.project import Project
  4. from .testcases import DockerClientTestCase
  5. class ProjectTest(DockerClientTestCase):
  6. def setUp(self):
  7. super(ProjectTest, self).setUp()
  8. self.services = [
  9. self.create_service('web'),
  10. self.create_service('db'),
  11. ]
  12. self.project = Project('composetest', self.services, self.client)
  13. for service in self.services:
  14. service.ensure_image_exists()
  15. self.client.create_container(
  16. name='{}_{}_1'.format(self.project.name, service.name),
  17. **service.options
  18. )
  19. def get_names(self, **kwargs):
  20. if 'stopped' not in kwargs:
  21. kwargs['stopped'] = True
  22. return list(legacy.get_legacy_container_names(
  23. self.client,
  24. self.project.name,
  25. [s.name for s in self.services],
  26. **kwargs
  27. ))
  28. def test_get_legacy_container_names(self):
  29. self.assertEqual(len(self.get_names()), len(self.services))
  30. def test_migration_to_labels(self):
  31. with mock.patch.object(legacy, 'log', autospec=True) as mock_log:
  32. self.assertEqual(self.project.containers(stopped=True), [])
  33. self.assertEqual(mock_log.warn.call_count, len(self.services))
  34. legacy.migrate_project_to_labels(self.project)
  35. self.assertEqual(len(self.project.containers(stopped=True)), len(self.services))