1
0

resilience_test.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from __future__ import unicode_literals
  2. from __future__ import absolute_import
  3. import mock
  4. from compose.project import Project
  5. from .testcases import DockerClientTestCase
  6. class ResilienceTest(DockerClientTestCase):
  7. def test_recreate_fails(self):
  8. db = self.create_service('db', volumes=['/var/db'], command='top')
  9. project = Project('composetest', [db], self.client)
  10. container = db.create_container()
  11. db.start_container(container)
  12. host_path = container.get('Volumes')['/var/db']
  13. project.up()
  14. container = db.containers()[0]
  15. self.assertEqual(container.get('Volumes')['/var/db'], host_path)
  16. with mock.patch('compose.service.Service.create_container', crash):
  17. with self.assertRaises(Crash):
  18. project.up()
  19. project.up()
  20. container = db.containers()[0]
  21. self.assertEqual(container.get('Volumes')['/var/db'], host_path)
  22. class Crash(Exception):
  23. pass
  24. def crash(*args, **kwargs):
  25. raise Crash()