updated tests and added more error checking

This commit is contained in:
Ken Pepple
2011-02-11 13:53:54 -08:00
parent e4061a0f5d
commit 40ec6d45a2
5 changed files with 45 additions and 34 deletions

View File

@@ -623,15 +623,16 @@ class InstanceTypeCommands(object):
arguments: name memory_mb vcpus local_gb"""
try:
instance_types.create(name, memory, vcpus, local_gb, flavorid)
except exception.InvalidInputException:
except exception.InvalidInputException, e:
print "Must supply valid parameters to create instance type"
print e
sys.exit(1)
except exception.DBError, e:
print "DB Error: %s" % e
sys.exit(1)
sys.exit(2)
except:
print "Unknown error"
sys.exit(1)
sys.exit(3)
else:
print "%s created" % name
@@ -639,14 +640,10 @@ class InstanceTypeCommands(object):
"""Marks instance types / flavors as deleted
arguments: name"""
try:
records = instance_types.destroy(name)
except exception.InvalidParameters:
instance_types.destroy(name)
except exception.ApiError:
print "Valid instance type name is required"
sys.exit(1)
except exception.NotFound, e:
print "Instance type name %s not found. \
No instance type deleted." % name
sys.exit(1)
else:
print "%s deleted" % name

View File

@@ -48,7 +48,7 @@ def create(name, memory, vcpus, local_gb, flavorid):
flavorid=flavorid))
except exception.DBError:
raise exception.ApiError(_("Cannot create instance type: %s"),
instance_type, "Invalid")
name)
def destroy(name):
@@ -59,9 +59,9 @@ def destroy(name):
else:
try:
db.instance_type_destroy(context.get_admin_context(), name)
except exception.DBError:
except exception.NotFound:
raise exception.ApiError(_("Unknown instance type: %s"),
instance_type, "Invalid")
name)
def get_all_types(inactive=0):
@@ -86,7 +86,7 @@ def get_instance_type(name):
return inst_type
except exception.DBError:
raise exception.ApiError(_("Unknown instance type: %s"),
instance_type, "Invalid")
name)
def get_by_type(instance_type):
@@ -99,7 +99,7 @@ def get_by_type(instance_type):
return inst_type['name']
except exception.DBError:
raise exception.ApiError(_("Unknown instance type: %s"),
instance_type, "Invalid")
instance_type)
def get_by_flavor_id(flavor_id):
@@ -112,4 +112,4 @@ def get_by_flavor_id(flavor_id):
return flavor['name']
except exception.DBError:
raise exception.ApiError(_("Unknown flavor: %s"),
flavor_id, "Invalid")
flavor_id)

View File

@@ -2086,10 +2086,10 @@ def instance_type_get_by_flavor_id(context, id):
def instance_type_destroy(context, name):
""" Marks specific instance_type as deleted"""
session = get_session()
try:
instance_type_ref = session.query(models.InstanceTypes).\
filter_by(name=name)
instance_type_ref.update(dict(deleted=1))
except:
raise exception.DBError
records = instance_type_ref.update(dict(deleted=1))
if records == 0:
raise exception.NotFound
else:
return instance_type_ref

View File

@@ -62,3 +62,20 @@ class InstanceTypeTestCase(test.TestCase):
count()
inst_types = instance_types.get_all_types()
self.assertEqual(total_instance_types, len(inst_types))
def test_invalid_create_args_should_fail(self):
"""Ensures that instance type creation fails with invalid args"""
self.assertRaises(
exception.InvalidInputException,
instance_types.create, self.name, 0, 1, 120, self.flavorid)
self.assertRaises(
exception.InvalidInputException,
instance_types.create, self.name, 256, -1, 120, self.flavorid)
self.assertRaises(
exception.InvalidInputException,
instance_types.create, self.name, 256, 1, "aa", self.flavorid)
def test_non_existant_inst_type_shouldnt_delete(self):
"""Ensures that instance type creation fails with invalid args"""
self.assertRaises(exception.ApiError,
instance_types.destroy, "sfsfsdfdfs")

View File

@@ -32,7 +32,6 @@ class NovaManageTestCase(test.TestCase):
max_flavorid = session.query(models.InstanceTypes).\
order_by("flavorid desc").first()
self.flavorid = str(max_flavorid["flavorid"] + 1)
# self.flavorid = str(self.flavorid)
self.name = str(int(time.time()))
def teardown(self):
@@ -42,7 +41,7 @@ class NovaManageTestCase(test.TestCase):
fnull = open(os.devnull, 'w')
retcode = subprocess.call(["bin/nova-manage", "instance_type",
"create", self.name, "256", "1",
"120", self.flavorid], stdout=fnull)
"10", self.flavorid], stdout=fnull)
self.assertEqual(0, retcode)
retcode = subprocess.call(["bin/nova-manage", "instance_type",\
"delete", self.name], stdout=fnull)
@@ -67,16 +66,14 @@ class NovaManageTestCase(test.TestCase):
retcode = subprocess.call(["bin/nova-manage", "instance_type",\
"create", self.name, "256", "0",\
"120", self.flavorid], stdout=fnull)
# self.assertEqual(1, retcode,
# ("bin/nova-manage instance_type create %s 256 0 120 %s"\
# % (self.name, self.flavorid)))
self.assertEqual(1, retcode)
def test_should_fail_on_duplicate_flavorid(self):
fnull = open(os.devnull, 'w')
retcode = subprocess.call(["bin/nova-manage", "instance_type",\
"create", self.name, "256", "1",\
"120", "1"], stdout=fnull)
self.assertEqual(1, retcode)
self.assertEqual(3, retcode)
def test_should_fail_on_duplicate_name(self):
fnull = open(os.devnull, 'w')
@@ -87,10 +84,10 @@ class NovaManageTestCase(test.TestCase):
retcode = subprocess.call(["bin/nova-manage", "instance_type",\
"create", "fsfsfsdfsdf", "256", "1",\
"120", self.flavorid], stdout=fnull)
self.assertEqual(1, retcode)
self.assertEqual(3, retcode)
# def test_instance_type_delete_should_fail_without_valid_name(self):
# fnull = open(os.devnull, 'w')
# retcode = subprocess.call(["bin/nova-manage", "instance_type",\
# "delete", "saefasff"], stdout=fnull)
# self.assertEqual(1, retcode)
def test_instance_type_delete_should_fail_without_valid_name(self):
fnull = open(os.devnull, 'w')
retcode = subprocess.call(["bin/nova-manage", "instance_type",\
"delete", "doesntexist"], stdout=fnull)
self.assertEqual(1, retcode)