diff --git a/tests/test_kolla_docker.py b/tests/test_kolla_docker.py
index 0b25016464..8acba9a38d 100644
--- a/tests/test_kolla_docker.py
+++ b/tests/test_kolla_docker.py
@@ -162,31 +162,80 @@ class TestContainer(base.BaseTestCase):
 
     def setUp(self):
         super(TestContainer, self).setUp()
+        self.fake_data = copy.deepcopy(FAKE_DATA)
 
     def test_create_container(self):
-        self.dw = get_DockerWorker(FAKE_DATA['params'])
+        self.dw = get_DockerWorker(self.fake_data['params'])
         self.dw.dc.create_host_config = mock.MagicMock(
-            return_value=FAKE_DATA['params']['host_config'])
+            return_value=self.fake_data['params']['host_config'])
         self.dw.create_container()
         self.assertTrue(self.dw.changed)
         self.dw.dc.create_container.assert_called_once_with(
-            **FAKE_DATA['params'])
+            **self.fake_data['params'])
 
     def test_start_container_without_pull(self):
-        FAKE_DATA['params'].update({'auth_username': 'fake_user',
-                                    'auth_password': 'fake_psw',
-                                    'auth_registry': 'myrepo/myapp',
-                                    'auth_email': 'fake_mail@foogle.com'})
-        self.dw = get_DockerWorker(FAKE_DATA['params'])
-        self.dw.dc.images = mock.MagicMock(return_value=FAKE_DATA['images'])
+        self.fake_data['params'].update({'auth_username': 'fake_user',
+                                         'auth_password': 'fake_psw',
+                                         'auth_registry': 'myrepo/myapp',
+                                         'auth_email': 'fake_mail@foogle.com'})
+        self.dw = get_DockerWorker(self.fake_data['params'])
+        self.dw.dc.images = mock.MagicMock(
+            return_value=self.fake_data['images'])
         self.dw.dc.containers = mock.MagicMock(params={'all': 'True'})
-        new_container = copy.deepcopy(FAKE_DATA['containers'])
+        new_container = copy.deepcopy(self.fake_data['containers'])
         new_container.append({'Names': '/test_container',
                               'Status': 'Up 2 seconds'})
-        self.dw.dc.containers.side_effect = [FAKE_DATA['containers'],
+        self.dw.dc.containers.side_effect = [self.fake_data['containers'],
                                              new_container]
         self.dw.check_container_differs = mock.MagicMock(return_value=False)
         self.dw.create_container = mock.MagicMock()
         self.dw.start_container()
         self.assertFalse(self.dw.changed)
         self.dw.create_container.assert_called_once_with()
+
+    def test_start_container_with_duplicate_name(self):
+        self.fake_data['params'].update({'name': 'my_container',
+                                         'auth_username': 'fake_user',
+                                         'auth_password': 'fake_psw',
+                                         'auth_registry': 'myrepo/myapp',
+                                         'auth_email': 'fake_mail@foogle.com'})
+        self.dw = get_DockerWorker(self.fake_data['params'])
+        self.dw.dc.images = mock.MagicMock(
+            return_value=self.fake_data['images'])
+        self.dw.dc.containers = mock.MagicMock(params={'all': 'True'})
+        updated_cont_list = copy.deepcopy(self.fake_data['containers'])
+        updated_cont_list.pop(0)
+        self.dw.dc.containers.side_effect = [self.fake_data['containers'],
+                                             self.fake_data['containers'],
+                                             updated_cont_list,
+                                             self.fake_data['containers']
+                                             ]
+        self.dw.check_container_differs = mock.MagicMock(return_value=True)
+        self.dw.dc.remove_container = mock.MagicMock()
+        self.dw.create_container = mock.MagicMock()
+        self.dw.start_container()
+        self.assertTrue(self.dw.changed)
+        self.dw.dc.remove_container.assert_called_once_with(
+            container=self.fake_data['params'].get('name'),
+            force=True)
+        self.dw.create_container.assert_called_once_with()
+
+    def test_start_container(self):
+        self.fake_data['params'].update({'name': 'my_container',
+                                         'auth_username': 'fake_user',
+                                         'auth_password': 'fake_psw',
+                                         'auth_registry': 'myrepo/myapp',
+                                         'auth_email': 'fake_mail@foogle.com'})
+        self.dw = get_DockerWorker(self.fake_data['params'])
+        self.dw.dc.images = mock.MagicMock(
+            return_value=self.fake_data['images'])
+        self.fake_data['containers'][0].update(
+            {'Status': 'Exited 2 days ago'})
+        self.dw.dc.containers = mock.MagicMock(
+            return_value=self.fake_data['containers'])
+        self.dw.check_container_differs = mock.MagicMock(return_value=False)
+        self.dw.dc.start = mock.MagicMock()
+        self.dw.start_container()
+        self.assertTrue(self.dw.changed)
+        self.dw.dc.start.assert_called_once_with(
+            container=self.fake_data["params"].get('name'))