Merge "Fixes bug 902374-Negative tests for Volumes"

This commit is contained in:
Jenkins 2012-03-20 22:03:04 +00:00 committed by Gerrit Code Review
commit e7c423e8a2
3 changed files with 92 additions and 0 deletions

View File

@ -10,6 +10,7 @@ from tempest.services.nova.json.security_groups_client \
import SecurityGroupsClient
from tempest.services.nova.json.floating_ips_client import FloatingIPsClient
from tempest.services.nova.json.keypairs_client import KeyPairsClient
from tempest.services.nova.json.volumes_client import VolumesClient
class Manager(object):
@ -42,6 +43,7 @@ class Manager(object):
self.keypairs_client = KeyPairsClient(*client_args)
self.security_groups_client = SecurityGroupsClient(*client_args)
self.floating_ips_client = FloatingIPsClient(*client_args)
self.volumes_client = VolumesClient(*client_args)
class ServiceManager(object):

View File

@ -0,0 +1,36 @@
from tempest.common import rest_client
import json
class VolumesClient(object):
def __init__(self, config, username, key, auth_url, tenant_name=None):
self.config = config
catalog_type = self.config.compute.catalog_type
self.client = rest_client.RestClient(config, username, key, auth_url,
catalog_type, tenant_name)
def list_volumes(self, params=None):
"""List all the volumes created"""
url = 'os-volumes'
if params != None:
param_list = []
for param, value in params.iteritems():
param_list.append("%s=%s&" % (param, value))
url += '?' + ' '.join(param_list)
resp, body = self.client.get(url)
body = json.loads(body)
return resp, body['volumes']
def get_volume(self, volume_id):
"""Returns the details of a single volume"""
url = "os-volumes/%s" % str(volume_id)
resp, body = self.client.get(url)
body = json.loads(body)
return resp, body['volume']
def delete_volume(self, volume_id):
"""Deletes the Specified Volume"""
return self.client.delete("os-volumes/%s" % str(volume_id))

View File

@ -0,0 +1,54 @@
from nose.plugins.attrib import attr
import unittest2 as unittest
from tempest import openstack
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
class VolumesTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.os = openstack.Manager()
cls.client = cls.os.volumes_client
@attr(type='negative')
def test_volume_get_nonexistant_volume_id(self):
"""Negative: Should not be able to get details of nonexistant volume"""
#Creating a nonexistant volume id
volume_id_list = list()
resp, body = self.client.list_volumes()
for i in range(len(body)):
volume_id_list.append(body[i]['id'])
while True:
non_exist_id = rand_name('999')
if non_exist_id not in volume_id_list:
break
#Trying to GET a non existant volume
try:
resp, body = self.client.get_volume(non_exist_id)
except exceptions.NotFound:
pass
else:
self.fail('Should not be able to GET the details from a '
'nonexistant volume')
@attr(type='negative')
def test_volume_delete_nonexistant_volume_id(self):
"""Negative: Should not be able to delete nonexistant Volume"""
#Creating nonexistant volume id
volume_id_list = list()
resp, body = self.client.list_volumes()
for i in range(len(body)):
volume_id_list.append(body[i]['id'])
while True:
non_exist_id = rand_name('999')
if non_exist_id not in volume_id_list:
break
#Trying to DELETE a non existant volume
try:
resp, body = self.client.delete_volume(non_exist_id)
except exceptions.NotFound:
pass
else:
self.fail('Should not be able to DELETE a nonexistant volume')