From dbbcf38e02caea014309f52ada53c4fb8f54ae4d Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Tue, 22 Mar 2016 15:26:06 -0700 Subject: [PATCH] Objectify test_instance_type_extra_specs This module was still using low-level DB functions for flavors, which makes it break when we move them. Change-Id: I248a9f09be6d9b6bf395a024d092f15dd1b2bbc3 --- .../unit/test_instance_types_extra_specs.py | 127 +++++++----------- 1 file changed, 47 insertions(+), 80 deletions(-) diff --git a/nova/tests/unit/test_instance_types_extra_specs.py b/nova/tests/unit/test_instance_types_extra_specs.py index 8031376045f5..4c6354952735 100644 --- a/nova/tests/unit/test_instance_types_extra_specs.py +++ b/nova/tests/unit/test_instance_types_extra_specs.py @@ -16,8 +16,7 @@ Unit Tests for instance types extra specs code from nova.compute import arch from nova import context -from nova import db -from nova import exception +from nova import objects from nova import test @@ -26,61 +25,49 @@ class InstanceTypeExtraSpecsTestCase(test.TestCase): def setUp(self): super(InstanceTypeExtraSpecsTestCase, self).setUp() self.context = context.get_admin_context() - values = dict(name="cg1.4xlarge", - memory_mb=22000, - vcpus=8, - root_gb=1690, - ephemeral_gb=2000, - flavorid=105) + flavor = objects.Flavor(context=self.context, + name="cg1.4xlarge", + memory_mb=22000, + vcpus=8, + root_gb=1690, + ephemeral_gb=2000, + flavorid=105) self.specs = dict(cpu_arch=arch.X86_64, cpu_model="Nehalem", xpu_arch="fermi", xpus="2", xpu_model="Tesla 2050") - values['extra_specs'] = self.specs - ref = db.flavor_create(self.context, - values) - self.instance_type_id = ref["id"] - self.flavorid = ref["flavorid"] + flavor.extra_specs = self.specs + flavor.create() + self.flavor = flavor + self.instance_type_id = flavor.id + self.flavorid = flavor.flavorid def tearDown(self): # Remove the instance type from the database - db.flavor_destroy(self.context, "cg1.4xlarge") + self.flavor.destroy() super(InstanceTypeExtraSpecsTestCase, self).tearDown() def test_instance_type_specs_get(self): - actual_specs = db.flavor_extra_specs_get( - self.context, - self.flavorid) - self.assertEqual(self.specs, actual_specs) + flavor = objects.Flavor.get_by_flavor_id(self.context, + self.flavorid) + self.assertEqual(self.specs, flavor.extra_specs) def test_flavor_extra_specs_delete(self): del self.specs["xpu_model"] - db.flavor_extra_specs_delete(self.context, - self.flavorid, - "xpu_model") - actual_specs = db.flavor_extra_specs_get( - self.context, - self.flavorid) - self.assertEqual(self.specs, actual_specs) + del self.flavor.extra_specs['xpu_model'] + self.flavor.save() + flavor = objects.Flavor.get_by_flavor_id(self.context, + self.flavorid) + self.assertEqual(self.specs, flavor.extra_specs) def test_instance_type_extra_specs_update(self): self.specs["cpu_model"] = "Sandy Bridge" - db.flavor_extra_specs_update_or_create( - self.context, - self.flavorid, - dict(cpu_model="Sandy Bridge")) - actual_specs = db.flavor_extra_specs_get( - self.context, - self.flavorid) - self.assertEqual(self.specs, actual_specs) - - def test_instance_type_extra_specs_update_with_nonexisting_flavor(self): - extra_specs = dict(cpu_arch=arch.X86_64) - nonexisting_flavorid = "some_flavor_that_does_not_exist" - self.assertRaises(exception.FlavorNotFound, - db.flavor_extra_specs_update_or_create, - self.context, nonexisting_flavorid, extra_specs) + self.flavor.extra_specs["cpu_model"] = "Sandy Bridge" + self.flavor.save() + flavor = objects.Flavor.get_by_flavor_id(self.context, + self.flavorid) + self.assertEqual(self.specs, flavor.extra_specs) def test_instance_type_extra_specs_create(self): net_attrs = { @@ -88,55 +75,35 @@ class InstanceTypeExtraSpecsTestCase(test.TestCase): "net_mbps": "10000" } self.specs.update(net_attrs) - db.flavor_extra_specs_update_or_create( - self.context, - self.flavorid, - net_attrs) - actual_specs = db.flavor_extra_specs_get( - self.context, - self.flavorid) - self.assertEqual(self.specs, actual_specs) + self.flavor.extra_specs.update(net_attrs) + self.flavor.save() + flavor = objects.Flavor.get_by_flavor_id(self.context, + self.flavorid) + self.assertEqual(self.specs, flavor.extra_specs) def test_instance_type_get_with_extra_specs(self): - instance_type = db.flavor_get( - self.context, - self.instance_type_id) - self.assertEqual(instance_type['extra_specs'], - self.specs) - instance_type = db.flavor_get( - self.context, - 5) - self.assertEqual(instance_type['extra_specs'], {}) + flavor = objects.Flavor.get_by_id(self.context, 5) + self.assertEqual(flavor.extra_specs, {}) def test_instance_type_get_by_name_with_extra_specs(self): - instance_type = db.flavor_get_by_name( - self.context, - "cg1.4xlarge") - self.assertEqual(instance_type['extra_specs'], - self.specs) - instance_type = db.flavor_get_by_name( - self.context, - "m1.small") - self.assertEqual(instance_type['extra_specs'], {}) + flavor = objects.Flavor.get_by_name(self.context, + "cg1.4xlarge") + self.assertEqual(flavor.extra_specs, self.specs) + flavor = objects.Flavor.get_by_name(self.context, + "m1.small") + self.assertEqual(flavor.extra_specs, {}) def test_instance_type_get_by_flavor_id_with_extra_specs(self): - instance_type = db.flavor_get_by_flavor_id( - self.context, - 105) - self.assertEqual(instance_type['extra_specs'], - self.specs) - instance_type = db.flavor_get_by_flavor_id( - self.context, - 2) - self.assertEqual(instance_type['extra_specs'], {}) + flavor = objects.Flavor.get_by_flavor_id(self.context, 105) + self.assertEqual(flavor.extra_specs, self.specs) + flavor = objects.Flavor.get_by_flavor_id(self.context, 2) + self.assertEqual(flavor.extra_specs, {}) def test_instance_type_get_all(self): - types = db.flavor_get_all(self.context) + flavors = objects.FlavorList.get_all(self.context) - name2specs = {} - for instance_type in types: - name = instance_type['name'] - name2specs[name] = instance_type['extra_specs'] + name2specs = {flavor.name: flavor.extra_specs + for flavor in flavors} self.assertEqual(name2specs['cg1.4xlarge'], self.specs) self.assertEqual(name2specs['m1.small'], {})