Browse Source

Add integration tests for Service.recreate_containers() with keep_old

Signed-off-by: Chris Corbyn <[email protected]>
d11wtq 11 years ago
parent
commit
a6c8319b5d
1 changed files with 46 additions and 0 deletions
  1. 46 0
      tests/integration/service_test.py

+ 46 - 0
tests/integration/service_test.py

@@ -132,6 +132,52 @@ class ServiceTest(DockerClientTestCase):
         self.assertNotEqual(old_container.id, new_container.id)
         self.assertRaises(APIError, lambda: self.client.inspect_container(intermediate_container.id))
 
+    def test_recreate_containers_with_keep_old_running(self):
+        service = self.create_service(
+            'db',
+            environment={'FOO': '1'},
+            volumes=['/var/db'],
+            entrypoint=['ps'],
+            command=['ax']
+        )
+        old_container = service.create_container()
+        service.start_container(old_container)
+
+        num_containers_before = len(self.client.containers(all=True))
+
+        tuples = service.recreate_containers(keep_old=True)
+        self.assertEqual(len(tuples), 1)
+
+        intermediate_container = tuples[0][0]
+        new_container = tuples[0][1]
+
+        self.assertIsNone(intermediate_container)
+        self.assertEqual(len(self.client.containers(all=True)), num_containers_before)
+        self.assertEqual(old_container.id, new_container.id)
+
+    def test_recreate_containers_with_keep_old_stopped(self):
+        service = self.create_service(
+            'db',
+            environment={'FOO': '1'},
+            volumes=['/var/db'],
+            entrypoint=['ps'],
+            command=['ax']
+        )
+        old_container = service.create_container()
+        old_container.stop()
+
+        num_containers_before = len(self.client.containers(all=True))
+
+        tuples = service.recreate_containers(keep_old=True)
+        self.assertEqual(len(tuples), 1)
+
+        intermediate_container = tuples[0][0]
+        new_container = tuples[0][1]
+
+        self.assertIsNone(intermediate_container)
+        self.assertEqual(len(self.client.containers(all=True)), num_containers_before)
+        self.assertEqual(old_container.id, new_container.id)
+
     def test_start_container_passes_through_options(self):
         db = self.create_service('db')
         db.start_container(environment={'FOO': 'BAR'})