service.recreate_containers() no longer removes the old containers

We need to keep them around until the new ones have been started.
This commit is contained in:
Aanand Prasad 2014-01-15 13:06:25 +00:00
commit bdc6b47e1f
2 changed files with 20 additions and 13 deletions

View file

@ -109,16 +109,24 @@ class ServiceTest(DockerClientTestCase):
self.assertIn('/var/db', container.inspect()['Volumes'])
def test_recreate_containers(self):
service = self.create_service('db', environment={'FOO': '1'})
container = service.create_container()
self.assertEqual(container.dictionary['Config']['Env'], ['FOO=1'])
service = self.create_service('db', environment={'FOO': '1'}, volumes=['/var/db'])
old_container = service.create_container()
self.assertEqual(old_container.dictionary['Config']['Env'], ['FOO=1'])
service.start_container(old_container)
volume_path = old_container.inspect()['Volumes']['/var/db']
service.options['environment']['FOO'] = '2'
new_container = service.recreate_containers()[0]
self.assertEqual(new_container.dictionary['Config']['Env'], ['FOO=2'])
(old, new) = service.recreate_containers()
self.assertEqual(old, [old_container])
self.assertEqual(len(new), 1)
self.assertEqual(len(service.containers(stopped=True)), 1)
self.assertNotEqual(container.id, new_container.id)
new_container = new[0]
self.assertEqual(new_container.dictionary['Config']['Env'], ['FOO=2'])
service.start_container(new_container)
self.assertEqual(new_container.inspect()['Volumes']['/var/db'], volume_path)
self.assertEqual(len(service.containers(stopped=True)), 2)
self.assertNotEqual(old_container.id, new_container.id)
def test_start_container_passes_through_options(self):
db = self.create_service('db')