Merge "Convert cli tests to use global CONF object"
diff --git a/tempest/api/compute/admin/test_aggregates.py b/tempest/api/compute/admin/test_aggregates.py
index 362cf2d..98d2550 100644
--- a/tempest/api/compute/admin/test_aggregates.py
+++ b/tempest/api/compute/admin/test_aggregates.py
@@ -108,7 +108,6 @@
@attr(type='gate')
def test_aggregate_create_update_with_az(self):
# Update an aggregate and ensure properties are updated correctly
- self.useFixture(fixtures.LockFixture('availability_zone'))
aggregate_name = data_utils.rand_name(self.aggregate_name_prefix)
az_name = data_utils.rand_name(self.az_name_prefix)
resp, aggregate = self.client.create_aggregate(aggregate_name, az_name)
diff --git a/tempest/api/volume/test_volume_metadata.py b/tempest/api/volume/test_volume_metadata.py
index 6d23c0a..ec732d1 100644
--- a/tempest/api/volume/test_volume_metadata.py
+++ b/tempest/api/volume/test_volume_metadata.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from testtools.matchers import ContainsAll
+
from tempest.api.volume import base
from tempest import test
@@ -49,7 +51,7 @@
# Get the metadata of the volume
resp, body = self.volumes_client.get_volume_metadata(self.volume_id)
self.assertEqual(200, resp.status)
- self.assertEqual(metadata, body)
+ self.assertThat(body.items(), ContainsAll(metadata.items()))
# Delete one item metadata of the volume
rsp, body = self.volumes_client.delete_volume_metadata_item(
self.volume_id,
@@ -76,7 +78,7 @@
# Get the metadata of the volume
resp, body = self.volumes_client.get_volume_metadata(self.volume_id)
self.assertEqual(200, resp.status)
- self.assertEqual(metadata, body)
+ self.assertThat(body.items(), ContainsAll(metadata.items()))
# Update metadata
resp, body = self.volumes_client.update_volume_metadata(
self.volume_id,
@@ -85,7 +87,7 @@
# Get the metadata of the volume
resp, body = self.volumes_client.get_volume_metadata(self.volume_id)
self.assertEqual(200, resp.status)
- self.assertEqual(update, body)
+ self.assertThat(body.items(), ContainsAll(update.items()))
@test.attr(type='gate')
def test_update_volume_metadata_item(self):
@@ -93,9 +95,6 @@
metadata = {"key1": "value1",
"key2": "value2",
"key3": "value3"}
- create_expect = {"key1": "value1",
- "key2": "value2",
- "key3": "value3"}
update_item = {"key3": "value3_update"}
expect = {"key1": "value1",
"key2": "value2",
@@ -105,7 +104,7 @@
self.volume_id,
metadata)
self.assertEqual(200, resp.status)
- self.assertEqual(create_expect, body)
+ self.assertThat(body.items(), ContainsAll(metadata.items()))
# Update metadata item
resp, body = self.volumes_client.update_volume_metadata_item(
self.volume_id,
@@ -115,7 +114,7 @@
# Get the metadata of the volume
resp, body = self.volumes_client.get_volume_metadata(self.volume_id)
self.assertEqual(200, resp.status)
- self.assertEqual(expect, body)
+ self.assertThat(body.items(), ContainsAll(expect.items()))
class VolumeMetadataTestXML(VolumeMetadataTest):
diff --git a/tempest/api/volume/test_volumes_get.py b/tempest/api/volume/test_volumes_get.py
index 28c332e..6d89e5b 100644
--- a/tempest/api/volume/test_volumes_get.py
+++ b/tempest/api/volume/test_volumes_get.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from testtools.matchers import ContainsAll
+
from tempest.api.volume import base
from tempest.common.utils import data_utils
from tempest import config
@@ -69,16 +71,16 @@
self.assertEqual(200, resp.status)
self.assertEqual(v_name,
fetched_volume['display_name'],
- 'The fetched Volume is different '
+ 'The fetched Volume name is different '
'from the created Volume')
self.assertEqual(volume['id'],
fetched_volume['id'],
- 'The fetched Volume is different '
+ 'The fetched Volume id is different '
'from the created Volume')
- self.assertEqual(metadata,
- fetched_volume['metadata'],
- 'The fetched Volume is different '
- 'from the created Volume')
+ self.assertThat(fetched_volume['metadata'].items(),
+ ContainsAll(metadata.items()),
+ 'The fetched Volume metadata misses data '
+ 'from the created Volume')
# NOTE(jdg): Revert back to strict true/false checking
# after fix for bug #1227837 merges
@@ -105,7 +107,10 @@
self.assertEqual(volume['id'], updated_volume['id'])
self.assertEqual(new_v_name, updated_volume['display_name'])
self.assertEqual(new_desc, updated_volume['display_description'])
- self.assertEqual(metadata, updated_volume['metadata'])
+ self.assertThat(updated_volume['metadata'].items(),
+ ContainsAll(metadata.items()),
+ 'The fetched Volume metadata misses data '
+ 'from the created Volume')
# NOTE(jdg): Revert back to strict true/false checking
# after fix for bug #1227837 merges
@@ -115,18 +120,6 @@
if 'imageRef' not in kwargs:
self.assertEqual(boot_flag, False)
- @attr(type='gate')
- def test_volume_get_metadata_none(self):
- # Create a volume without passing metadata, get details, and delete
-
- # Create a volume without metadata
- volume = self.create_volume(metadata={})
-
- # GET Volume
- resp, fetched_volume = self.client.get_volume(volume['id'])
- self.assertEqual(200, resp.status)
- self.assertEqual(fetched_volume['metadata'], {})
-
@attr(type='smoke')
def test_volume_create_get_update_delete(self):
self._volume_create_get_update_delete()
diff --git a/tempest/common/isolated_creds.py b/tempest/common/isolated_creds.py
index f2df061..146fac9 100644
--- a/tempest/common/isolated_creds.py
+++ b/tempest/common/isolated_creds.py
@@ -472,7 +472,11 @@
net_client = self.network_admin_client
for cred in self.isolated_net_resources:
network, subnet, router = self.isolated_net_resources.get(cred)
- if self.network_resources.get('router'):
+ LOG.debug("Clearing network: %(network)s, "
+ "subnet: %(subnet)s, router: %(router)s",
+ {'network': network, 'subnet': subnet, 'router': router})
+ if (not self.network_resources or
+ self.network_resources.get('router')):
try:
if self.tempest_client:
net_client.remove_router_interface_with_subnet_id(
@@ -485,13 +489,16 @@
router['name'])
pass
self._clear_isolated_router(router['id'], router['name'])
- if self.network_resources.get('network'):
+ if (not self.network_resources or
+ self.network_resources.get('network')):
# TODO(mlavalle) This method call will be removed once patch
# https://review.openstack.org/#/c/46563/ merges in Neutron
self._cleanup_ports(network['id'])
- if self.network_resources.get('subnet'):
+ if (not self.network_resources or
+ self.network_resources.get('subnet')):
self._clear_isolated_subnet(subnet['id'], subnet['name'])
- if self.network_resources.get('network'):
+ if (not self.network_resources or
+ self.network_resources.get('network')):
self._clear_isolated_network(network['id'], network['name'])
def clear_isolated_creds(self):
diff --git a/tempest/services/compute/v3/json/flavors_client.py b/tempest/services/compute/v3/json/flavors_client.py
index f8c762c..739c870 100644
--- a/tempest/services/compute/v3/json/flavors_client.py
+++ b/tempest/services/compute/v3/json/flavors_client.py
@@ -63,7 +63,7 @@
if kwargs.get('swap'):
post_body['swap'] = kwargs.get('swap')
if kwargs.get('rxtx'):
- post_body['rxtx_factor'] = kwargs.get('rxtx')
+ post_body['os-flavor-rxtx:rxtx_factor'] = kwargs.get('rxtx')
if kwargs.get('is_public'):
post_body['flavor-access:is_public'] = kwargs.get('is_public')
post_body = json.dumps({'flavor': post_body})
diff --git a/tempest/test.py b/tempest/test.py
index 61d1311..6754831 100644
--- a/tempest/test.py
+++ b/tempest/test.py
@@ -209,12 +209,12 @@
def validate_tearDownClass():
if at_exit_set:
- raise RuntimeError("tearDownClass does not calls the super's "
+ raise RuntimeError("tearDownClass does not call the super's "
"tearDownClass in these classes: "
+ str(at_exit_set) + "\n"
"If you see the exception, with another "
- "exception please do not report this one!"
- "If you are changing tempest code, make sure you",
+ "exception please do not report this one! "
+ "If you are changing tempest code, make sure you "
"are calling the super class's tearDownClass!")
atexit.register(validate_tearDownClass)
diff --git a/tempest/tests/test_wrappers.py b/tempest/tests/test_wrappers.py
index dd0ea61..f6ed445 100644
--- a/tempest/tests/test_wrappers.py
+++ b/tempest/tests/test_wrappers.py
@@ -27,6 +27,7 @@
super(TestWrappers, self).setUp()
# Setup test dirs
self.directory = tempfile.mkdtemp(prefix='tempest-unit')
+ self.addCleanup(shutil.rmtree, self.directory)
self.test_dir = os.path.join(self.directory, 'tests')
os.mkdir(self.test_dir)
# Setup Test files