aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMD NADEEM <mail2nadeem92@gmail.com>2016-06-15 15:08:40 +0530
committerMD NADEEM <mail2nadeem92@gmail.com>2016-06-16 21:20:38 +0530
commit0e459bb6d3dc858e3c10bc5a7850b2093f62860c (patch)
tree80f7bf6db14cf15a1c55cabfd2886f07bb61825e
parent9ed6712bd19b9392f2e34b848ee8388c70c8e554 (diff)
downloadkolla-0e459bb6d3dc858e3c10bc5a7850b2093f62860c.tar.gz
kolla-0e459bb6d3dc858e3c10bc5a7850b2093f62860c.zip
Added unit test for start container
This patch check two senario first if we choose to start a new container with name say XXX, however in the env a container already exist with XXX name and second to start a stopped container. Change-Id: Ibd6c5fbcc6f37ea2481634ac2e6b3edb91ae7aab Partially-Implements: blueprint ansible-unit-tests
-rw-r--r--tests/test_kolla_docker.py71
1 files changed, 60 insertions, 11 deletions
diff --git a/tests/test_kolla_docker.py b/tests/test_kolla_docker.py
index 0b2501646..8acba9a38 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'))