Fix volume type functional tests

Convert functional VolumeTypeTests to not use class methods for setup.

Depends-On: https://review.openstack.org/577147
Change-Id: I855583ad1a50bf5f5046acdb85e977ab9e3c45d2
This commit is contained in:
Dean Troyer 2018-06-14 09:31:01 -05:00
parent 9766eb23e7
commit 15a079faa6
3 changed files with 180 additions and 82 deletions

View File

@ -20,62 +20,92 @@ from openstackclient.tests.functional.volume.v1 import common
class VolumeTypeTests(common.BaseVolumeTests):
"""Functional tests for volume type. """
NAME = uuid.uuid4().hex
def test_volume_type_create_list(self):
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' +
name,
)
self.assertEqual(name, cmd_output['name'])
@classmethod
def setUpClass(cls):
super(VolumeTypeTests, cls).setUpClass()
cmd_output = json.loads(cls.openstack(
'volume type create -f json %s' % cls.NAME))
cls.assertOutput(cls.NAME, cmd_output['name'])
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % name
))
self.assertEqual(self.NAME, cmd_output['name'])
@classmethod
def tearDownClass(cls):
try:
raw_output = cls.openstack('volume type delete %s' % cls.NAME)
cls.assertOutput('', raw_output)
finally:
super(VolumeTypeTests, cls).tearDownClass()
def test_volume_type_list(self):
cmd_output = json.loads(self.openstack('volume type list -f json'))
self.assertIn(self.NAME, [t['Name'] for t in cmd_output])
def test_volume_type_show(self):
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
self.assertEqual(self.NAME, cmd_output['name'])
'volume type list -f json --default'
))
self.assertEqual(1, len(cmd_output))
self.assertEqual('lvmdriver-1', cmd_output[0]['Name'])
def test_volume_type_set_unset_properties(self):
raw_output = self.openstack(
'volume type set --property a=b --property c=d %s' % self.NAME)
self.assertEqual("", raw_output)
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type show -f json ' + self.NAME))
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' + name
)
self.assertEqual(name, cmd_output['name'])
raw_output = self.openstack(
'volume type set --property a=b --property c=d %s' % name
)
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % name
))
# TODO(amotoki): properties output should be machine-readable
self.assertEqual("a='b', c='d'", cmd_output['properties'])
raw_output = self.openstack('volume type unset --property a %s' %
self.NAME)
raw_output = self.openstack(
'volume type unset --property a %s' % name
)
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
'volume type show -f json %s' % name
))
self.assertEqual("c='d'", cmd_output['properties'])
def test_volume_type_set_unset_multiple_properties(self):
raw_output = self.openstack(
'volume type set --property a=b --property c=d %s' % self.NAME)
self.assertEqual("", raw_output)
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' + name
)
self.assertEqual(name, cmd_output['name'])
raw_output = self.openstack(
'volume type set --property a=b --property c=d %s' % name
)
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % name
))
self.assertEqual("a='b', c='d'", cmd_output['properties'])
raw_output = self.openstack(
'volume type unset --property a --property c %s' % self.NAME)
'volume type unset --property a --property c %s' % name
)
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
'volume type show -f json %s' % name
))
self.assertEqual("", cmd_output['properties'])
def test_multi_delete(self):
@ -140,8 +170,21 @@ class VolumeTypeTests(common.BaseVolumeTests):
'--encryption-control-location front-end ' +
self.NAME)
self.assertEqual('', raw_output)
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type show -f json --encryption-type ' + self.NAME))
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' + name,
)
self.assertEqual(name, cmd_output['name'])
cmd_output = json.loads(self.openstack(
'volume type show -f json --encryption-type ' + name
))
expected = ["provider='LuksEncryptor'",
"cipher='aes-xts-plain64'",
"key_size='128'",
@ -150,10 +193,12 @@ class VolumeTypeTests(common.BaseVolumeTests):
self.assertIn(attr, cmd_output['encryption'])
# test unset encryption type
raw_output = self.openstack(
'volume type unset --encryption-type ' + self.NAME)
'volume type unset --encryption-type ' + name
)
self.assertEqual('', raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json --encryption-type ' + self.NAME))
'volume type show -f json --encryption-type ' + name
))
self.assertEqual('', cmd_output['encryption'])
# test delete encryption type
raw_output = self.openstack('volume type delete ' + encryption_type)

View File

@ -125,7 +125,6 @@ class QosTests(common.BaseVolumeTests):
def test_volume_qos_asso_disasso(self):
"""Tests associate and disassociate qos with volume type"""
vol_type1 = uuid.uuid4().hex
vol_type2 = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type create -f json ' +
vol_type1
@ -134,6 +133,9 @@ class QosTests(common.BaseVolumeTests):
vol_type1,
cmd_output['name']
)
self.addCleanup(self.openstack, 'volume type delete ' + vol_type1)
vol_type2 = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type create -f json ' +
vol_type2
@ -142,7 +144,6 @@ class QosTests(common.BaseVolumeTests):
vol_type2,
cmd_output['name']
)
self.addCleanup(self.openstack, 'volume type delete ' + vol_type1)
self.addCleanup(self.openstack, 'volume type delete ' + vol_type2)
name = uuid.uuid4().hex

View File

@ -20,76 +20,113 @@ from openstackclient.tests.functional.volume.v2 import common
class VolumeTypeTests(common.BaseVolumeTests):
"""Functional tests for volume type. """
NAME = uuid.uuid4().hex
@classmethod
def setUpClass(cls):
super(VolumeTypeTests, cls).setUpClass()
cmd_output = json.loads(cls.openstack(
'volume type create -f json --private %s' % cls.NAME))
cls.assertOutput(cls.NAME, cmd_output['name'])
@classmethod
def tearDownClass(cls):
try:
raw_output = cls.openstack('volume type delete %s' % cls.NAME)
cls.assertOutput('', raw_output)
finally:
super(VolumeTypeTests, cls).tearDownClass()
def test_volume_type_list(self):
cmd_output = json.loads(self.openstack('volume type list -f json'))
self.assertIn(self.NAME, [t['Name'] for t in cmd_output])
def test_volume_type_list_default(self):
def test_volume_type_create_list(self):
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type list -f json --default'))
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' + name,
)
self.assertEqual(name, cmd_output['name'])
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % name
))
self.assertEqual(name, cmd_output['name'])
cmd_output = json.loads(self.openstack('volume type list -f json'))
self.assertIn(name, [t['Name'] for t in cmd_output])
cmd_output = json.loads(self.openstack(
'volume type list -f json --default'
))
self.assertEqual(1, len(cmd_output))
self.assertEqual('lvmdriver-1', cmd_output[0]['Name'])
def test_volume_type_show(self):
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
self.assertEqual(self.NAME, cmd_output['name'])
def test_volume_type_set_unset_properties(self):
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' + name
)
self.assertEqual(name, cmd_output['name'])
raw_output = self.openstack(
'volume type set --property a=b --property c=d %s' % self.NAME)
'volume type set --property a=b --property c=d %s' % name
)
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
'volume type show -f json %s' % name
))
# TODO(amotoki): properties output should be machine-readable
self.assertEqual("a='b', c='d'", cmd_output['properties'])
raw_output = self.openstack('volume type unset --property a %s' %
self.NAME)
raw_output = self.openstack(
'volume type unset --property a %s' % name
)
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
'volume type show -f json %s' % name
))
self.assertEqual("c='d'", cmd_output['properties'])
def test_volume_type_set_unset_multiple_properties(self):
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' + name
)
self.assertEqual(name, cmd_output['name'])
raw_output = self.openstack(
'volume type set --property a=b --property c=d %s' % self.NAME)
'volume type set --property a=b --property c=d %s' % name
)
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
'volume type show -f json %s' % name
))
self.assertEqual("a='b', c='d'", cmd_output['properties'])
raw_output = self.openstack(
'volume type unset --property a --property c %s' % self.NAME)
'volume type unset --property a --property c %s' % name
)
self.assertEqual("", raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json %s' % self.NAME))
'volume type show -f json %s' % name
))
self.assertEqual("", cmd_output['properties'])
def test_volume_type_set_unset_project(self):
name = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' + name
)
self.assertEqual(name, cmd_output['name'])
raw_output = self.openstack(
'volume type set --project admin %s' % self.NAME)
'volume type set --project admin %s' % name
)
self.assertEqual("", raw_output)
raw_output = self.openstack(
'volume type unset --project admin %s' % self.NAME)
'volume type unset --project admin %s' % name
)
self.assertEqual("", raw_output)
def test_multi_delete(self):
@ -108,6 +145,7 @@ class VolumeTypeTests(common.BaseVolumeTests):
# these to new test format when beef up all tests for
# volume tye commands.
def test_encryption_type(self):
name = uuid.uuid4().hex
encryption_type = uuid.uuid4().hex
# test create new encryption type
cmd_output = json.loads(self.openstack(
@ -162,16 +200,28 @@ class VolumeTypeTests(common.BaseVolumeTests):
for attr in expected:
self.assertIn(attr, cmd_output['encryption'])
# test set new encryption type
cmd_output = json.loads(self.openstack(
'volume type create -f json --private ' +
name,
))
self.addCleanup(
self.openstack,
'volume type delete ' + name,
)
self.assertEqual(name, cmd_output['name'])
raw_output = self.openstack(
'volume type set '
'--encryption-provider LuksEncryptor '
'--encryption-cipher aes-xts-plain64 '
'--encryption-key-size 128 '
'--encryption-control-location front-end ' +
self.NAME)
name)
self.assertEqual('', raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json --encryption-type ' + self.NAME))
'volume type show -f json --encryption-type ' + name
))
expected = ["provider='LuksEncryptor'",
"cipher='aes-xts-plain64'",
"key_size='128'",
@ -180,10 +230,12 @@ class VolumeTypeTests(common.BaseVolumeTests):
self.assertIn(attr, cmd_output['encryption'])
# test unset encryption type
raw_output = self.openstack(
'volume type unset --encryption-type ' + self.NAME)
'volume type unset --encryption-type ' + name
)
self.assertEqual('', raw_output)
cmd_output = json.loads(self.openstack(
'volume type show -f json --encryption-type ' + self.NAME))
'volume type show -f json --encryption-type ' + name
))
self.assertEqual('', cmd_output['encryption'])
# test delete encryption type
raw_output = self.openstack('volume type delete ' + encryption_type)