summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authord11wtq <chris@w3style.co.uk>2014-06-08 11:32:16 +0000
committerChris Corbyn <chris@w3style.co.uk>2014-06-09 01:31:48 +0000
commitd8b0fa294ecc975093e8d8539ee52151a2136e76 (patch)
tree2dde90431fee3136b85db242386ac188413cf086
parenta6c8319b5df7c353de12c87e0896087749159240 (diff)
Add integration tests for Project.up() w/ start_links and keep_old
Signed-off-by: Chris Corbyn <chris@w3style.co.uk>
-rw-r--r--tests/integration/project_test.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/integration/project_test.py b/tests/integration/project_test.py
index 28dab507..f2b9075e 100644
--- a/tests/integration/project_test.py
+++ b/tests/integration/project_test.py
@@ -46,6 +46,21 @@ class ProjectTest(DockerClientTestCase):
project.up(['db'])
self.assertEqual(len(project.containers()), 1)
+ self.assertEqual(len(db.containers()), 1)
+ self.assertEqual(len(web.containers()), 0)
+
+ project.kill()
+ project.remove_stopped()
+
+ def test_project_up_recreates_containers(self):
+ web = self.create_service('web')
+ db = self.create_service('db', volumes=['/var/db'])
+ project = Project('figtest', [web, db], self.client)
+ project.start()
+ self.assertEqual(len(project.containers()), 0)
+
+ project.up(['db'])
+ self.assertEqual(len(project.containers()), 1)
old_db_id = project.containers()[0].id
db_volume_path = project.containers()[0].inspect()['Volumes']['/var/db']
@@ -59,6 +74,28 @@ class ProjectTest(DockerClientTestCase):
project.kill()
project.remove_stopped()
+ def test_project_up_with_keep_old(self):
+ web = self.create_service('web')
+ db = self.create_service('db', volumes=['/var/db'])
+ project = Project('figtest', [web, db], self.client)
+ project.start()
+ self.assertEqual(len(project.containers()), 0)
+
+ project.up(['db'])
+ self.assertEqual(len(project.containers()), 1)
+ old_db_id = project.containers()[0].id
+ db_volume_path = project.containers()[0].inspect()['Volumes']['/var/db']
+
+ project.up(keep_old=True)
+ self.assertEqual(len(project.containers()), 2)
+
+ db_container = [c for c in project.containers() if 'db' in c.name][0]
+ self.assertEqual(c.id, old_db_id)
+ self.assertEqual(c.inspect()['Volumes']['/var/db'], db_volume_path)
+
+ project.kill()
+ project.remove_stopped()
+
def test_project_up_without_auto_start(self):
console = self.create_service('console', auto_start=False)
db = self.create_service('db')
@@ -74,6 +111,42 @@ class ProjectTest(DockerClientTestCase):
project.kill()
project.remove_stopped()
+ def test_project_up_starts_links(self):
+ console = self.create_service('console')
+ db = self.create_service('db', volumes=['/var/db'])
+ web = self.create_service('web', links=[(db, 'db')])
+
+ project = Project('figtest', [web, db, console], self.client)
+ project.start()
+ self.assertEqual(len(project.containers()), 0)
+
+ project.up(['web'])
+ self.assertEqual(len(project.containers()), 2)
+ self.assertEqual(len(web.containers()), 1)
+ self.assertEqual(len(db.containers()), 1)
+ self.assertEqual(len(console.containers()), 0)
+
+ project.kill()
+ project.remove_stopped()
+
+ def test_project_up_with_no_links(self):
+ console = self.create_service('console')
+ db = self.create_service('db', volumes=['/var/db'])
+ web = self.create_service('web', links=[(db, 'db')])
+
+ project = Project('figtest', [web, db, console], self.client)
+ project.start()
+ self.assertEqual(len(project.containers()), 0)
+
+ project.up(['web'], start_links=False)
+ self.assertEqual(len(project.containers()), 1)
+ self.assertEqual(len(web.containers()), 1)
+ self.assertEqual(len(db.containers()), 0)
+ self.assertEqual(len(console.containers()), 0)
+
+ project.kill()
+ project.remove_stopped()
+
def test_unscale_after_restart(self):
web = self.create_service('web')
project = Project('figtest', [web], self.client)