diff --git a/nova/tests/test_instance_types.py b/nova/tests/test_instance_types.py index b790d6b1..0baeee77 100644 --- a/nova/tests/test_instance_types.py +++ b/nova/tests/test_instance_types.py @@ -152,7 +152,7 @@ class InstanceTypeTestCase(test.TestCase): 'name two', 256, 1, 120, 200, flavorid) def test_will_not_destroy_with_no_name(self): - """Ensure destroy sad path of no name raises error""" + """Ensure destroy said path of no name raises error""" self.assertRaises(exception.InstanceTypeNotFoundByName, instance_types.destroy, None) @@ -201,6 +201,24 @@ class InstanceTypeTestCase(test.TestCase): fetched = instance_types.get_instance_type_by_flavor_id(flavorid) self.assertEqual(default_instance_type, fetched) + def test_will_list_deleted_type_for_active_instance(self): + """Ensure deleted instance types with active instances can be read""" + ctxt = context.get_admin_context() + inst_type = instance_types.create("test", 256, 1, 120, 100, "test1") + + instance_params = {"instance_type_id": inst_type["id"]} + instance = db.instance_create(ctxt, instance_params) + + # NOTE(jk0): Delete the instance type and reload the instance from the + # DB. The instance_type object will still be available to the active + # instance, otherwise being None. + instance_types.destroy(inst_type["name"]) + instance = db.instance_get_by_uuid(ctxt, instance["uuid"]) + + self.assertRaises(exception.InstanceTypeNotFound, + instance_types.get_instance_type, inst_type["name"]) + self.assertTrue(instance["instance_type"]) + class InstanceTypeFilteringTest(test.TestCase): """Test cases for the filter option available for instance_type_get_all"""