summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-02-13 14:25:55 +0000
committerGerrit Code Review <review@openstack.org>2017-02-13 14:25:55 +0000
commit30fdb488a8136aea65fad2522c0fc6a0a3e4058a (patch)
treeb32ee34398241e87c82a9d0ea4d6aa3e03b2c591 /openstackclient/tests/functional
parent5a9b5f7cb9f350b3f30be3dcbbf32b8d507c6bc5 (diff)
parent9fd145edbf149345edee35b43c7958d3821c9ff3 (diff)
downloadpython-openstackclient-30fdb488a8136aea65fad2522c0fc6a0a3e4058a.tar.gz
Merge "Functional test for volume qos"
Diffstat (limited to 'openstackclient/tests/functional')
-rw-r--r--openstackclient/tests/functional/volume/v1/test_qos.py134
-rw-r--r--openstackclient/tests/functional/volume/v2/test_qos.py141
2 files changed, 202 insertions, 73 deletions
diff --git a/openstackclient/tests/functional/volume/v1/test_qos.py b/openstackclient/tests/functional/volume/v1/test_qos.py
index 770d5acb..9ca32b0a 100644
--- a/openstackclient/tests/functional/volume/v1/test_qos.py
+++ b/openstackclient/tests/functional/volume/v1/test_qos.py
@@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import json
import uuid
from openstackclient.tests.functional.volume.v1 import common
@@ -18,38 +19,103 @@ from openstackclient.tests.functional.volume.v1 import common
class QosTests(common.BaseVolumeTests):
"""Functional tests for volume qos. """
- NAME = uuid.uuid4().hex
- HEADERS = ['Name']
- FIELDS = ['id', 'name']
- ID = None
-
- @classmethod
- def setUpClass(cls):
- super(QosTests, cls).setUpClass()
- opts = cls.get_opts(cls.FIELDS)
- raw_output = cls.openstack('volume qos create ' + cls.NAME + opts)
- cls.ID, name, rol = raw_output.split('\n')
- cls.assertOutput(cls.NAME, name)
-
- @classmethod
- def tearDownClass(cls):
- raw_output = cls.openstack('volume qos delete ' + cls.ID)
- cls.assertOutput('', raw_output)
-
- def test_volume_qos_list(self):
- opts = self.get_opts(self.HEADERS)
- raw_output = self.openstack('volume qos list' + opts)
- self.assertIn(self.NAME, raw_output)
-
- def test_volume_qos_show(self):
- opts = self.get_opts(self.FIELDS)
- raw_output = self.openstack('volume qos show ' + self.ID + opts)
- self.assertEqual(self.ID + "\n" + self.NAME + "\n", raw_output)
-
- def test_volume_qos_metadata(self):
+ def test_volume_qos_create_list(self):
+ """Test create, list, delete multiple"""
+ name1 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ name1
+ ))
+ self.assertEqual(
+ name1,
+ cmd_output['name']
+ )
+
+ name2 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ name2
+ ))
+ self.assertEqual(
+ name2,
+ cmd_output['name']
+ )
+
+ # Test list
+ cmd_output = json.loads(self.openstack(
+ 'volume qos list -f json'
+ ))
+ names = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, names)
+ self.assertIn(name2, names)
+
+ # Test delete multiple
+ del_output = self.openstack('volume qos delete ' + name1 + ' ' + name2)
+ self.assertOutput('', del_output)
+
+ def test_volume_qos_set_show_unset(self):
+ """Tests create volume qos, set, unset, show, delete"""
+
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ '--consumer front-end '
+ '--property Alpha=a ' +
+ name
+ ))
+ self.addCleanup(self.openstack, 'volume qos delete ' + name)
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+
+ self.assertEqual(
+ "front-end",
+ cmd_output['consumer']
+ )
+
+ # Test volume qos set
+ raw_output = self.openstack(
+ 'volume qos set ' +
+ '--property Alpha=c ' +
+ '--property Beta=b ' +
+ name,
+ )
+ self.assertOutput('', raw_output)
+
+ # Test volume qos show
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+ self.assertEqual(
+ "Alpha='c', Beta='b'",
+ cmd_output['specs']
+ )
+
+ # Test volume qos unset
raw_output = self.openstack(
- 'volume qos set --property a=b --property c=d ' + self.ID)
- self.assertEqual("", raw_output)
- opts = self.get_opts(['name', 'specs'])
- raw_output = self.openstack('volume qos show ' + self.ID + opts)
- self.assertEqual(self.NAME + "\na='b', c='d'\n", raw_output)
+ 'volume qos unset ' +
+ '--property Alpha ' +
+ name,
+ )
+ self.assertOutput('', raw_output)
+
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+ self.assertEqual(
+ "Beta='b'",
+ cmd_output['specs']
+ )
+
+ # TODO(qiangjiahui): Add tests for associate and disassociate volume type
diff --git a/openstackclient/tests/functional/volume/v2/test_qos.py b/openstackclient/tests/functional/volume/v2/test_qos.py
index 1558c216..aee10dca 100644
--- a/openstackclient/tests/functional/volume/v2/test_qos.py
+++ b/openstackclient/tests/functional/volume/v2/test_qos.py
@@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import json
import uuid
from openstackclient.tests.functional.volume.v2 import common
@@ -18,45 +19,107 @@ from openstackclient.tests.functional.volume.v2 import common
class QosTests(common.BaseVolumeTests):
"""Functional tests for volume qos. """
- NAME = uuid.uuid4().hex
- HEADERS = ['Name']
- FIELDS = ['id', 'name']
- ID = None
-
- @classmethod
- def setUpClass(cls):
- super(QosTests, cls).setUpClass()
- opts = cls.get_opts(cls.FIELDS)
- raw_output = cls.openstack('volume qos create ' + cls.NAME + opts)
- cls.ID, name, rol = raw_output.split('\n')
- cls.assertOutput(cls.NAME, name)
-
- @classmethod
- def tearDownClass(cls):
- raw_output = cls.openstack('volume qos delete ' + cls.ID)
- cls.assertOutput('', raw_output)
-
- def test_volume_qos_list(self):
- opts = self.get_opts(self.HEADERS)
- raw_output = self.openstack('volume qos list' + opts)
- self.assertIn(self.NAME, raw_output)
-
- def test_volume_qos_show(self):
- opts = self.get_opts(self.FIELDS)
- raw_output = self.openstack('volume qos show ' + self.ID + opts)
- self.assertEqual(self.ID + "\n" + self.NAME + "\n", raw_output)
-
- def test_volume_qos_metadata(self):
+ def test_volume_qos_create_delete_list(self):
+ """Test create, list, delete multiple"""
+ name1 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ name1
+ ))
+ self.assertEqual(
+ name1,
+ cmd_output['name']
+ )
+
+ name2 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ name2
+ ))
+ self.assertEqual(
+ name2,
+ cmd_output['name']
+ )
+
+ # Test list
+ cmd_output = json.loads(self.openstack(
+ 'volume qos list -f json'
+ ))
+ names = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, names)
+ self.assertIn(name2, names)
+
+ # Test delete multiple
+ del_output = self.openstack('volume qos delete ' + name1 + ' ' + name2)
+ self.assertOutput('', del_output)
+
+ def test_volume_qos_set_show_unset(self):
+ """Tests create volume qos, set, unset, show, delete"""
+
+ name = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'volume qos create -f json ' +
+ '--consumer front-end '
+ '--property Alpha=a ' +
+ name
+ ))
+ self.addCleanup(self.openstack, 'volume qos delete ' + name)
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+
+ self.assertEqual(
+ "front-end",
+ cmd_output['consumer']
+ )
+ self.assertEqual(
+ "Alpha='a'",
+ cmd_output['properties']
+ )
+
+ # Test volume qos set
raw_output = self.openstack(
- 'volume qos set --property a=b --property c=d ' + self.ID)
- self.assertEqual("", raw_output)
- opts = self.get_opts(['name', 'properties'])
- raw_output = self.openstack('volume qos show ' + self.ID + opts)
- self.assertEqual(self.NAME + "\na='b', c='d'\n", raw_output)
+ 'volume qos set ' +
+ '--property Alpha=c ' +
+ '--property Beta=b ' +
+ name,
+ )
+ self.assertOutput('', raw_output)
+
+ # Test volume qos show
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+ self.assertEqual(
+ "Alpha='c', Beta='b'",
+ cmd_output['properties']
+ )
+ # Test volume qos unset
raw_output = self.openstack(
- 'volume qos unset --property a ' + self.ID)
- self.assertEqual("", raw_output)
- opts = self.get_opts(['name', 'properties'])
- raw_output = self.openstack('volume qos show ' + self.ID + opts)
- self.assertEqual(self.NAME + "\nc='d'\n", raw_output)
+ 'volume qos unset ' +
+ '--property Alpha ' +
+ name,
+ )
+ self.assertOutput('', raw_output)
+
+ cmd_output = json.loads(self.openstack(
+ 'volume qos show -f json ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ cmd_output['name']
+ )
+ self.assertEqual(
+ "Beta='b'",
+ cmd_output['properties']
+ )
+
+ # TODO(qiangjiahui): Add tests for associate and disassociate volume type