aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-07-26 07:53:22 +0000
committerGerrit Code Review <review@openstack.org>2016-07-26 07:53:22 +0000
commit9b704e99b5cd1159a199a731008bdf7993a81f3b (patch)
tree4027058245de67bd0745e05cbfda43574c165a63 /tests
parent73ac202563e05f9cc623964f6d3124242a79d888 (diff)
parentef37687e358bcb37d28a506f3ad56ad5cb1b0785 (diff)
downloadkolla-9b704e99b5cd1159a199a731008bdf7993a81f3b.tar.gz
kolla-9b704e99b5cd1159a199a731008bdf7993a81f3b.zip
Merge "Added unit test for volume operations"
Diffstat (limited to 'tests')
-rw-r--r--tests/test_kolla_docker.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/test_kolla_docker.py b/tests/test_kolla_docker.py
index 94d080d83..a05d91edb 100644
--- a/tests/test_kolla_docker.py
+++ b/tests/test_kolla_docker.py
@@ -22,6 +22,7 @@ try:
from unittest import mock
except ImportError:
import mock
+from docker import errors as docker_error
from oslotest import base
this_dir = os.path.dirname(sys.modules[__name__].__file__)
@@ -484,3 +485,75 @@ class TestImage(base.BaseTestCase):
self.dw.module.fail_json.assert_called_once_with(
msg="Unknown error message: unexpected error",
failed=True)
+
+
+class TestVolume(base.BaseTestCase):
+
+ def setUp(self):
+ super(TestVolume, self).setUp()
+ self.fake_data = copy.deepcopy(FAKE_DATA)
+ self.volumes = {
+ 'Volumes':
+ [{'Driver': u'local',
+ 'Labels': None,
+ 'Mountpoint': '/var/lib/docker/volumes/nova_compute/_data',
+ 'Name': 'nova_compute'},
+ {'Driver': 'local',
+ 'Labels': None,
+ 'Mountpoint': '/var/lib/docker/volumes/mariadb/_data',
+ 'Name': 'mariadb'}]
+ }
+
+ def test_create_volume(self):
+ self.dw = get_DockerWorker({'name': 'rabbitmq',
+ 'action': 'create_volume'})
+ self.dw.dc.volumes.return_value = self.volumes
+
+ self.dw.create_volume()
+ self.dw.dc.volumes.assert_called_once_with()
+ self.assertTrue(self.dw.changed)
+ self.dw.dc.create_volume.assert_called_once_with(
+ name='rabbitmq',
+ driver='local')
+
+ def test_create_volume_exists(self):
+ self.dw = get_DockerWorker({'name': 'nova_compute',
+ 'action': 'create_volume'})
+ self.dw.dc.volumes.return_value = self.volumes
+
+ self.dw.create_volume()
+ self.dw.dc.volumes.assert_called_once_with()
+ self.assertFalse(self.dw.changed)
+
+ def test_remove_volume(self):
+ self.dw = get_DockerWorker({'name': 'nova_compute',
+ 'action': 'remove_volume'})
+ self.dw.dc.volumes.return_value = self.volumes
+
+ self.dw.remove_volume()
+ self.assertTrue(self.dw.changed)
+ self.dw.dc.remove_volume.assert_called_once_with(name='nova_compute')
+
+ def test_remove_volume_not_exists(self):
+ self.dw = get_DockerWorker({'name': 'rabbitmq',
+ 'action': 'remove_volume'})
+ self.dw.dc.volumes.return_value = self.volumes
+
+ self.dw.remove_volume()
+ self.assertFalse(self.dw.changed)
+
+ def test_remove_volume_exception(self):
+ resp = mock.MagicMock()
+ resp.status_code = 409
+ docker_except = docker_error.APIError('test error', resp)
+ self.dw = get_DockerWorker({'name': 'nova_compute',
+ 'action': 'remove_volume'})
+ self.dw.dc.volumes.return_value = self.volumes
+ self.dw.dc.remove_volume.side_effect = docker_except
+
+ self.assertRaises(docker_error.APIError, self.dw.remove_volume)
+ self.assertTrue(self.dw.changed)
+ self.dw.module.fail_json.assert_called_once_with(
+ failed=True,
+ msg="Volume named 'nova_compute' is currently in-use"
+ )