summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-09-16 21:43:47 +0000
committerGerrit Code Review <review@openstack.org>2014-09-16 21:43:47 +0000
commit2e6eaa6c6e82d7fa7706ff8320b45cb837b98300 (patch)
treeb78c459e032dda95bf8cf82e778509f603dd3e25
parent2cb9c85f8c2376b66e0de317dfc083998461010a (diff)
parentb4ce9490b9c3c8d2e37a49ca314654760b349367 (diff)
downloadnova-2e6eaa6c6e82d7fa7706ff8320b45cb837b98300.tar.gz
Merge "virt: move assertPublicAPISignatures into base test class"
-rw-r--r--nova/test.py31
-rw-r--r--nova/tests/virt/hyperv/test_hypervapi.py6
-rw-r--r--nova/tests/virt/ironic/test_driver.py6
-rw-r--r--nova/tests/virt/libvirt/test_driver.py7
-rw-r--r--nova/tests/virt/test_driver.py33
-rw-r--r--nova/tests/virt/vmwareapi/test_driver_api.py6
-rw-r--r--nova/tests/virt/xenapi/test_driver.py7
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)