|
@@ -8,25 +8,36 @@ from .testcases import DockerClientTestCase
|
|
|
|
|
|
|
|
|
class ResilienceTest(DockerClientTestCase):
|
|
|
- def test_recreate_fails(self):
|
|
|
- db = self.create_service('db', volumes=['/var/db'], command='top')
|
|
|
- project = Project('composetest', [db], self.client)
|
|
|
+ def setUp(self):
|
|
|
+ self.db = self.create_service('db', volumes=['/var/db'], command='top')
|
|
|
+ self.project = Project('composetest', [self.db], self.client)
|
|
|
|
|
|
- container = db.create_container()
|
|
|
- db.start_container(container)
|
|
|
- host_path = container.get('Volumes')['/var/db']
|
|
|
+ container = self.db.create_container()
|
|
|
+ self.db.start_container(container)
|
|
|
+ self.host_path = container.get('Volumes')['/var/db']
|
|
|
|
|
|
- project.up()
|
|
|
- container = db.containers()[0]
|
|
|
- self.assertEqual(container.get('Volumes')['/var/db'], host_path)
|
|
|
+ def test_successful_recreate(self):
|
|
|
+ self.project.up()
|
|
|
+ container = self.db.containers()[0]
|
|
|
+ self.assertEqual(container.get('Volumes')['/var/db'], self.host_path)
|
|
|
|
|
|
+ def test_create_failure(self):
|
|
|
with mock.patch('compose.service.Service.create_container', crash):
|
|
|
with self.assertRaises(Crash):
|
|
|
- project.up()
|
|
|
+ self.project.up()
|
|
|
|
|
|
- project.up()
|
|
|
- container = db.containers()[0]
|
|
|
- self.assertEqual(container.get('Volumes')['/var/db'], host_path)
|
|
|
+ self.project.up()
|
|
|
+ container = self.db.containers()[0]
|
|
|
+ self.assertEqual(container.get('Volumes')['/var/db'], self.host_path)
|
|
|
+
|
|
|
+ def test_start_failure(self):
|
|
|
+ with mock.patch('compose.service.Service.start_container', crash):
|
|
|
+ with self.assertRaises(Crash):
|
|
|
+ self.project.up()
|
|
|
+
|
|
|
+ self.project.up()
|
|
|
+ container = self.db.containers()[0]
|
|
|
+ self.assertEqual(container.get('Volumes')['/var/db'], self.host_path)
|
|
|
|
|
|
|
|
|
class Crash(Exception):
|