diff --git a/tempest/api/compute/volumes/test_volumes_get.py b/tempest/api/compute/volumes/test_volumes_get.py index a6302e6450..1acc57d33d 100644 --- a/tempest/api/compute/volumes/test_volumes_get.py +++ b/tempest/api/compute/volumes/test_volumes_get.py @@ -33,72 +33,68 @@ class VolumesGetTestJSON(base.BaseComputeTest): def test_volume_create_get_delete(self): # CREATE, GET, DELETE Volume volume = None - try: - v_name = rand_name('Volume-%s-') % self._interface - metadata = {'Type': 'work'} - #Create volume - resp, volume = self.client.create_volume(size=1, - display_name=v_name, - metadata=metadata) - self.assertEqual(200, resp.status) - self.assertTrue('id' in volume) - self.assertTrue('displayName' in volume) - self.assertEqual(volume['displayName'], v_name, - "The created volume name is not equal " - "to the requested name") - self.assertTrue(volume['id'] is not None, - "Field volume id is empty or not found.") - #Wait for Volume status to become ACTIVE - self.client.wait_for_volume_status(volume['id'], 'available') - #GET Volume - resp, fetched_volume = self.client.get_volume(volume['id']) - self.assertEqual(200, resp.status) - #Verfication of details of fetched Volume - self.assertEqual(v_name, - fetched_volume['displayName'], - 'The fetched Volume is different ' - 'from the created Volume') - self.assertEqual(volume['id'], - fetched_volume['id'], - 'The fetched Volume is different ' - 'from the created Volume') - self.assertEqual(metadata, - fetched_volume['metadata'], - 'The fetched Volume is different ' - 'from the created Volume') - - finally: - if volume: - #Delete the Volume created in this method - resp, _ = self.client.delete_volume(volume['id']) - self.assertEqual(202, resp.status) - #Checking if the deleted Volume still exists - self.client.wait_for_resource_deletion(volume['id']) + v_name = rand_name('Volume-%s-') % self._interface + metadata = {'Type': 'work'} + #Create volume + resp, volume = self.client.create_volume(size=1, + display_name=v_name, + metadata=metadata) + self.addCleanup(self._delete_volume, volume) + self.assertEqual(200, resp.status) + self.assertTrue('id' in volume) + self.assertTrue('displayName' in volume) + self.assertEqual(volume['displayName'], v_name, + "The created volume name is not equal " + "to the requested name") + self.assertTrue(volume['id'] is not None, + "Field volume id is empty or not found.") + #Wait for Volume status to become ACTIVE + self.client.wait_for_volume_status(volume['id'], 'available') + #GET Volume + resp, fetched_volume = self.client.get_volume(volume['id']) + self.assertEqual(200, resp.status) + #Verfication of details of fetched Volume + self.assertEqual(v_name, + fetched_volume['displayName'], + 'The fetched Volume is different ' + 'from the created Volume') + self.assertEqual(volume['id'], + fetched_volume['id'], + 'The fetched Volume is different ' + 'from the created Volume') + self.assertEqual(metadata, + fetched_volume['metadata'], + 'The fetched Volume is different ' + 'from the created Volume') @attr(type='gate') def test_volume_get_metadata_none(self): # CREATE, GET empty metadata dict + v_name = rand_name('Volume-') + #Create volume + resp, volume = self.client.create_volume(size=1, + display_name=v_name, + metadata={}) + self.addCleanup(self._delete_volume, volume) + self.assertEqual(200, resp.status) + self.assertTrue('id' in volume) + self.assertTrue('displayName' in volume) + #Wait for Volume status to become ACTIVE + self.client.wait_for_volume_status(volume['id'], 'available') + #GET Volume + resp, fetched_volume = self.client.get_volume(volume['id']) + self.assertEqual(200, resp.status) + self.assertEqual(fetched_volume['metadata'], {}) + + def _delete_volume(self, volume): + #Delete the Volume created in this method try: - v_name = rand_name('Volume-') - #Create volume - resp, volume = self.client.create_volume(size=1, - display_name=v_name, - metadata={}) - self.assertEqual(200, resp.status) - self.assertTrue('id' in volume) - self.assertTrue('displayName' in volume) - #Wait for Volume status to become ACTIVE - self.client.wait_for_volume_status(volume['id'], 'available') - #GET Volume - resp, fetched_volume = self.client.get_volume(volume['id']) - self.assertEqual(200, resp.status) - self.assertEqual(fetched_volume['metadata'], {}) - finally: - #Delete the Volume created in this method resp, _ = self.client.delete_volume(volume['id']) self.assertEqual(202, resp.status) #Checking if the deleted Volume still exists self.client.wait_for_resource_deletion(volume['id']) + except KeyError: + return class VolumesGetTestXML(VolumesGetTestJSON):