diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-09-16 21:43:47 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-09-16 21:43:47 +0000 |
commit | 2e6eaa6c6e82d7fa7706ff8320b45cb837b98300 (patch) | |
tree | b78c459e032dda95bf8cf82e778509f603dd3e25 | |
parent | 2cb9c85f8c2376b66e0de317dfc083998461010a (diff) | |
parent | b4ce9490b9c3c8d2e37a49ca314654760b349367 (diff) | |
download | nova-2e6eaa6c6e82d7fa7706ff8320b45cb837b98300.tar.gz |
Merge "virt: move assertPublicAPISignatures into base test class"
-rw-r--r-- | nova/test.py | 31 | ||||
-rw-r--r-- | nova/tests/virt/hyperv/test_hypervapi.py | 6 | ||||
-rw-r--r-- | nova/tests/virt/ironic/test_driver.py | 6 | ||||
-rw-r--r-- | nova/tests/virt/libvirt/test_driver.py | 7 | ||||
-rw-r--r-- | nova/tests/virt/test_driver.py | 33 | ||||
-rw-r--r-- | nova/tests/virt/vmwareapi/test_driver_api.py | 6 | ||||
-rw-r--r-- | nova/tests/virt/xenapi/test_driver.py | 7 |
7 files changed, 44 insertions, 52 deletions
diff --git a/nova/test.py b/nova/test.py index c1e2fc91c7..c7ec217ce9 100644 --- a/nova/test.py +++ b/nova/test.py @@ -26,6 +26,7 @@ eventlet.monkey_patch(os=False) import copy import gettext +import inspect import logging import os import shutil @@ -342,6 +343,36 @@ class TestCase(testtools.TestCase): svc = self.useFixture(ServiceFixture(name, host, **kwargs)) return svc.service + def assertPublicAPISignatures(self, baseinst, inst): + def get_public_apis(inst): + methods = {} + for (name, value) in inspect.getmembers(inst, inspect.ismethod): + if name.startswith("_"): + continue + methods[name] = value + return methods + + baseclass = baseinst.__class__.__name__ + basemethods = get_public_apis(baseinst) + implmethods = get_public_apis(inst) + + extranames = [] + for name in sorted(implmethods.keys()): + if name not in basemethods: + extranames.append(name) + + self.assertEqual([], extranames, + "public APIs not listed in base class %s" % + baseclass) + + for name in sorted(implmethods.keys()): + baseargs = inspect.getargspec(basemethods[name]) + implargs = inspect.getargspec(implmethods[name]) + + self.assertEqual(baseargs, implargs, + "%s args don't match base class %s" % + (name, baseclass)) + class APICoverage(object): diff --git a/nova/tests/virt/hyperv/test_hypervapi.py b/nova/tests/virt/hyperv/test_hypervapi.py index b103bde0f1..75bf12bc03 100644 --- a/nova/tests/virt/hyperv/test_hypervapi.py +++ b/nova/tests/virt/hyperv/test_hypervapi.py @@ -45,7 +45,6 @@ from nova.tests.image import fake as fake_image from nova.tests import matchers from nova.tests.virt.hyperv import db_fakes from nova.tests.virt.hyperv import fake -from nova.tests.virt import test_driver from nova import utils from nova.virt import configdrive from nova.virt import driver @@ -266,12 +265,11 @@ class HyperVAPIBaseTestCase(test.NoDBTestCase): super(HyperVAPIBaseTestCase, self).tearDown() -class HyperVAPITestCase(HyperVAPIBaseTestCase, - test_driver.DriverAPITestHelper): +class HyperVAPITestCase(HyperVAPIBaseTestCase): """Unit tests for Hyper-V driver calls.""" def test_public_api_signatures(self): - self.assertPublicAPISignatures(self._conn) + self.assertPublicAPISignatures(driver.ComputeDriver(None), self._conn) def test_get_available_resource(self): cpu_info = {'Architecture': 'fake', diff --git a/nova/tests/virt/ironic/test_driver.py b/nova/tests/virt/ironic/test_driver.py index a356bc375b..d75a02f394 100644 --- a/nova/tests/virt/ironic/test_driver.py +++ b/nova/tests/virt/ironic/test_driver.py @@ -31,7 +31,7 @@ from nova import test from nova.tests import fake_instance from nova.tests import utils from nova.tests.virt.ironic import utils as ironic_utils -from nova.tests.virt import test_driver +from nova.virt import driver from nova.virt import fake from nova.virt import firewall from nova.virt.ironic import client_wrapper as cw @@ -76,7 +76,7 @@ FAKE_CLIENT_WRAPPER = FakeClientWrapper() @mock.patch.object(cw, 'IronicClientWrapper', lambda *_: FAKE_CLIENT_WRAPPER) -class IronicDriverTestCase(test.NoDBTestCase, test_driver.DriverAPITestHelper): +class IronicDriverTestCase(test.NoDBTestCase): def setUp(self): super(IronicDriverTestCase, self).setUp() @@ -90,7 +90,7 @@ class IronicDriverTestCase(test.NoDBTestCase, test_driver.DriverAPITestHelper): CONF.set_default('api_retry_interval', default=0, group='ironic') def test_public_api_signatures(self): - self.assertPublicAPISignatures(self.driver) + self.assertPublicAPISignatures(driver.ComputeDriver(None), self.driver) def test_validate_driver_loading(self): self.assertIsInstance(self.driver, ironic_driver.IronicDriver) diff --git a/nova/tests/virt/libvirt/test_driver.py b/nova/tests/virt/libvirt/test_driver.py index d193d42bb4..3f23dea477 100644 --- a/nova/tests/virt/libvirt/test_driver.py +++ b/nova/tests/virt/libvirt/test_driver.py @@ -71,7 +71,6 @@ from nova.tests.objects import test_pci_device from nova.tests.virt.libvirt import fake_imagebackend from nova.tests.virt.libvirt import fake_libvirt_utils from nova.tests.virt.libvirt import fakelibvirt -from nova.tests.virt import test_driver from nova import utils from nova import version from nova.virt import block_device as driver_block_device @@ -407,8 +406,7 @@ class FakeNodeDevice(object): return self.xml -class LibvirtConnTestCase(test.TestCase, - test_driver.DriverAPITestHelper): +class LibvirtConnTestCase(test.TestCase): def setUp(self): super(LibvirtConnTestCase, self).setUp() @@ -580,8 +578,9 @@ class LibvirtConnTestCase(test.TestCase, host)['disabled'] def test_public_api_signatures(self): + baseinst = driver.ComputeDriver(None) inst = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) - self.assertPublicAPISignatures(inst) + self.assertPublicAPISignatures(baseinst, inst) def test_set_host_enabled_with_disable(self): # Tests disabling an enabled host. diff --git a/nova/tests/virt/test_driver.py b/nova/tests/virt/test_driver.py index 1edf91c769..4101a6a9ce 100644 --- a/nova/tests/virt/test_driver.py +++ b/nova/tests/virt/test_driver.py @@ -13,8 +13,6 @@ # License for the specific language governing permissions and limitations # under the License. -import inspect - from nova import test from nova.virt import driver @@ -58,34 +56,3 @@ class ToDriverRegistryTestCase(test.NoDBTestCase): drvs['key2'], FakeDriver2, 'arg1', 'arg2', param1='value1', param2='value2') - - -class DriverAPITestHelper(): - - def assertPublicAPISignatures(self, inst): - def get_public_apis(inst): - methods = {} - for (name, value) in inspect.getmembers(inst, inspect.ismethod): - if name.startswith("_"): - continue - methods[name] = value - return methods - - base = driver.ComputeDriver(None) - basemethods = get_public_apis(base) - implmethods = get_public_apis(inst) - - extranames = [] - for name in sorted(implmethods.keys()): - if name not in basemethods: - extranames.append(name) - - self.assertEqual([], extranames, - "public APIs not listed in base class") - - for name in sorted(implmethods.keys()): - baseargs = inspect.getargspec(basemethods[name]) - implargs = inspect.getargspec(implmethods[name]) - - self.assertEqual(baseargs, implargs, - "%s args don't match base" % name) diff --git a/nova/tests/virt/vmwareapi/test_driver_api.py b/nova/tests/virt/vmwareapi/test_driver_api.py index b5849b259c..fb3e2450a5 100644 --- a/nova/tests/virt/vmwareapi/test_driver_api.py +++ b/nova/tests/virt/vmwareapi/test_driver_api.py @@ -51,7 +51,6 @@ import nova.tests.image.fake from nova.tests import matchers from nova.tests import test_flavors from nova.tests import utils -from nova.tests.virt import test_driver from nova.tests.virt.vmwareapi import fake as vmwareapi_fake from nova.tests.virt.vmwareapi import stubs from nova import utils as nova_utils @@ -1985,8 +1984,7 @@ class VMwareAPIVMTestCase(test.NoDBTestCase): self._cached_files_exist() -class VMwareAPIVCDriverTestCase(VMwareAPIVMTestCase, - test_driver.DriverAPITestHelper): +class VMwareAPIVCDriverTestCase(VMwareAPIVMTestCase): def setUp(self): @@ -2014,7 +2012,7 @@ class VMwareAPIVCDriverTestCase(VMwareAPIVMTestCase, vmwareapi_fake.cleanup() def test_public_api_signatures(self): - self.assertPublicAPISignatures(self.conn) + self.assertPublicAPISignatures(v_driver.ComputeDriver(None), self.conn) def test_list_instances(self): instances = self.conn.list_instances() diff --git a/nova/tests/virt/xenapi/test_driver.py b/nova/tests/virt/xenapi/test_driver.py index 381e811c2b..c4cd964906 100644 --- a/nova/tests/virt/xenapi/test_driver.py +++ b/nova/tests/virt/xenapi/test_driver.py @@ -19,15 +19,14 @@ import mock from nova.compute import arch from nova.openstack.common import units -from nova.tests.virt import test_driver from nova.tests.virt.xenapi import stubs +from nova.virt import driver from nova.virt import fake from nova.virt import xenapi from nova.virt.xenapi import driver as xenapi_driver -class XenAPIDriverTestCase(stubs.XenAPITestBaseNoDB, - test_driver.DriverAPITestHelper): +class XenAPIDriverTestCase(stubs.XenAPITestBaseNoDB): """Unit tests for Driver operations.""" def _get_driver(self): @@ -99,4 +98,4 @@ class XenAPIDriverTestCase(stubs.XenAPITestBaseNoDB, def test_public_api_signatures(self): inst = self._get_driver() - self.assertPublicAPISignatures(inst) + self.assertPublicAPISignatures(driver.ComputeDriver(None), inst) |