From: Monty Taylor Date: Sat, 23 Feb 2013 10:35:28 +0000 (+0000) Subject: Add common test base class to hold common things. X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=cea9e39dd70e6b5c5f0e5aac5e9b7fc477ab990c;p=openstack-build%2Fneutron-build.git Add common test base class to hold common things. There are several common fixtures that every test case wants. Following the pattern in Nova, add a common base test case class to hold these things. Change-Id: I2d2cd91e5051d9cbf230e6f48985d6eddcb7b58a --- diff --git a/HACKING.rst b/HACKING.rst index 4333d2568..84e81af97 100644 --- a/HACKING.rst +++ b/HACKING.rst @@ -199,7 +199,10 @@ bug that had no unit test, a new passing unit test should be added. If a submitted bug fix does have a unit test, be sure to add a new one that fails without the patch and passes with the patch. -All unittest classes must ultimately inherit from testtools.TestCase. +All unittest classes must ultimately inherit from testtools.TestCase. In the +Quantum test suite, this should be done by inheriting from +quantum.tests.base.BaseTestCase. + All setUp and tearDown methods must upcall using the super() method. tearDown methods should be avoided and addCleanup calls should be preferred. Never manually create tempfiles. Always use the tempfile fixtures from diff --git a/quantum/plugins/cisco/tests/unit/test_cisco_extension.py b/quantum/plugins/cisco/tests/unit/test_cisco_extension.py index 87fa731fa..acc022062 100644 --- a/quantum/plugins/cisco/tests/unit/test_cisco_extension.py +++ b/quantum/plugins/cisco/tests/unit/test_cisco_extension.py @@ -22,7 +22,6 @@ import logging import os.path import routes -import testtools import webob from webtest import TestApp @@ -42,6 +41,7 @@ from quantum.openstack.common import jsonutils from quantum.plugins.cisco.db import api as db from quantum.plugins.cisco import l2network_plugin from quantum.plugins.cisco.l2network_plugin import L2Network +from quantum.tests import base from quantum.tests.unit.extension_stubs import StubBaseAppController from quantum import wsgi @@ -150,7 +150,7 @@ class ExtensionsTestApp(wsgi.Router): self._delete_network(net_id) -class QosExtensionTest(testtools.TestCase): +class QosExtensionTest(base.BaseTestCase): def setUp(self): @@ -406,7 +406,7 @@ class QosExtensionTest(testtools.TestCase): db.clear_db() -class CredentialExtensionTest(testtools.TestCase): +class CredentialExtensionTest(base.BaseTestCase): def setUp(self): diff --git a/quantum/plugins/cisco/tests/unit/test_database.py b/quantum/plugins/cisco/tests/unit/test_database.py index 20362369b..bc183a180 100644 --- a/quantum/plugins/cisco/tests/unit/test_database.py +++ b/quantum/plugins/cisco/tests/unit/test_database.py @@ -22,13 +22,12 @@ that tests the database api method calls import logging as LOG -import testtools - from quantum.openstack.common import log as logging from quantum.plugins.cisco.common import cisco_constants as const import quantum.plugins.cisco.db.api as db import quantum.plugins.cisco.db.l2network_db as l2network_db import quantum.plugins.cisco.db.nexus_db_v2 as nexus_db +from quantum.tests import base LOG = logging.getLogger(__name__) @@ -347,7 +346,7 @@ class QuantumDB(object): raise Exception("Failed to unplug interface: %s" % str(exc)) -class NexusDBTest(testtools.TestCase): +class NexusDBTest(base.BaseTestCase): """Class conisting of nexus DB unit tests""" def setUp(self): super(NexusDBTest, self).setUp() @@ -409,7 +408,7 @@ class NexusDBTest(testtools.TestCase): self.dbtest.delete_nexusportbinding(vlan_id) -class L2networkDBTest(testtools.TestCase): +class L2networkDBTest(base.BaseTestCase): """Class conisting of L2network DB unit tests""" def setUp(self): """Setup for tests""" @@ -515,7 +514,7 @@ class L2networkDBTest(testtools.TestCase): self.dbtest.delete_vlan_binding(netid) -class QuantumDBTest(testtools.TestCase): +class QuantumDBTest(base.BaseTestCase): """Class conisting of Quantum DB unit tests""" def setUp(self): """Setup for tests""" diff --git a/quantum/tests/base.py b/quantum/tests/base.py new file mode 100644 index 000000000..7a582fa9a --- /dev/null +++ b/quantum/tests/base.py @@ -0,0 +1,72 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2010-2011 OpenStack, LLC +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Base Test Case for all Unit Tests""" + +import os + +import fixtures +from oslo.config import cfg +import testtools + +CONF = cfg.CONF +TRUE_STRING = ['True', '1'] + + +class BaseTestCase(testtools.TestCase): + + def setUp(self): + super(BaseTestCase, self).setUp() + + self.useFixture(fixtures.FakeLogger( + format="%(asctime)s %(levelname)8s [%(name)s] %(message)s")) + + test_timeout = int(os.environ.get('OS_TEST_TIMEOUT', 0)) + if test_timeout == -1: + test_timeout = 0 + if test_timeout > 0: + self.useFixture(fixtures.Timeout(test_timeout, gentle=True)) + + # If someone does use tempfile directly, ensure that it's cleaned up + self.useFixture(fixtures.NestedTempfile()) + self.useFixture(fixtures.TempHomeDir()) + + self.addCleanup(CONF.reset) + + if os.environ.get('OS_STDOUT_NOCAPTURE') not in TRUE_STRING: + stdout = self.useFixture(fixtures.StringStream('stdout')).stream + self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout)) + if os.environ.get('OS_STDERR_NOCAPTURE') not in TRUE_STRING: + stderr = self.useFixture(fixtures.StringStream('stderr')).stream + self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr)) + + def config(self, **kw): + """ + Override some configuration values. + + The keyword arguments are the names of configuration options to + override and their values. + + If a group argument is supplied, the overrides are applied to + the specified configuration option group. + + All overrides are automatically cleared at the end of the current + test by the fixtures cleanup process. + """ + group = kw.pop('group', None) + for k, v in kw.iteritems(): + CONF.set_override(k, v, group) diff --git a/quantum/tests/unit/__init__.py b/quantum/tests/unit/__init__.py index de5064afe..eeda0121b 100644 --- a/quantum/tests/unit/__init__.py +++ b/quantum/tests/unit/__init__.py @@ -21,8 +21,6 @@ import __builtin__ import os -import testtools - setattr(__builtin__, '_', lambda x: x) from oslo.config import cfg @@ -34,3 +32,4 @@ cfg.CONF.state_path = absdir # An empty lock path forces lockutils.synchronized to use a temporary # location for lock files that will be cleaned up automatically. cfg.CONF.lock_path = '' +cfg.CONF.use_stderr = False diff --git a/quantum/tests/unit/_test_rootwrap_exec.py b/quantum/tests/unit/_test_rootwrap_exec.py index 188717cca..e1f54df8f 100644 --- a/quantum/tests/unit/_test_rootwrap_exec.py +++ b/quantum/tests/unit/_test_rootwrap_exec.py @@ -18,16 +18,16 @@ import os import fixtures -import testtools from quantum.agent.linux import utils from quantum.openstack.common import log as logging +from quantum.tests import base LOG = logging.getLogger(__name__) -class RootwrapTestExec(testtools.TestCase): +class RootwrapTestExec(base.BaseTestCase): """Simple unit test to test the basic rootwrap mechanism Essentially hello-world. Just run a command as root and check that diff --git a/quantum/tests/unit/brocade/test_brocade_vlan.py b/quantum/tests/unit/brocade/test_brocade_vlan.py index 454417d02..5640ca003 100644 --- a/quantum/tests/unit/brocade/test_brocade_vlan.py +++ b/quantum/tests/unit/brocade/test_brocade_vlan.py @@ -19,14 +19,14 @@ """ Test vlans alloc/dealloc. """ -import testtools from quantum.db import api as db from quantum.openstack.common import context from quantum.plugins.brocade import vlanbm as vlan_bitmap +from quantum.tests import base -class TestVlanBitmap(testtools.TestCase): +class TestVlanBitmap(base.BaseTestCase): """exercise Vlan bitmap .""" def setUp(self): diff --git a/quantum/tests/unit/cisco/test_nexus_plugin.py b/quantum/tests/unit/cisco/test_nexus_plugin.py index 91609a423..f2814a362 100644 --- a/quantum/tests/unit/cisco/test_nexus_plugin.py +++ b/quantum/tests/unit/cisco/test_nexus_plugin.py @@ -14,13 +14,13 @@ # limitations under the License. import mock -import testtools from quantum.db import api as db from quantum.openstack.common import importutils from quantum.plugins.cisco.common import cisco_constants as const from quantum.plugins.cisco.db import network_models_v2 from quantum.plugins.cisco.nexus import cisco_nexus_plugin_v2 +from quantum.tests import base NEXUS_IP_ADDRESS = '1.1.1.1' @@ -34,7 +34,7 @@ NEXUS_DRIVER = ('quantum.plugins.cisco.tests.unit.v2.nexus.' 'fake_nexus_driver.CiscoNEXUSFakeDriver') -class TestCiscoNexusPlugin(testtools.TestCase): +class TestCiscoNexusPlugin(base.BaseTestCase): def setUp(self): """ diff --git a/quantum/tests/unit/hyperv/test_hyperv_quantum_agent.py b/quantum/tests/unit/hyperv/test_hyperv_quantum_agent.py index 7ea8110af..5b89a27d2 100644 --- a/quantum/tests/unit/hyperv/test_hyperv_quantum_agent.py +++ b/quantum/tests/unit/hyperv/test_hyperv_quantum_agent.py @@ -24,12 +24,12 @@ import sys import mock from oslo.config import cfg -import testtools from quantum.plugins.hyperv.agent import hyperv_quantum_agent +from quantum.tests import base -class TestHyperVQuantumAgent(testtools.TestCase): +class TestHyperVQuantumAgent(base.BaseTestCase): def setUp(self): super(TestHyperVQuantumAgent, self).setUp() diff --git a/quantum/tests/unit/hyperv/test_hyperv_rpcapi.py b/quantum/tests/unit/hyperv/test_hyperv_rpcapi.py index 707f4fb20..bf94cf31c 100644 --- a/quantum/tests/unit/hyperv/test_hyperv_rpcapi.py +++ b/quantum/tests/unit/hyperv/test_hyperv_rpcapi.py @@ -21,7 +21,6 @@ Unit Tests for hyperv quantum rpc """ import mock -import testtools from quantum.agent import rpc as agent_rpc from quantum.common import topics @@ -29,9 +28,10 @@ from quantum.openstack.common import context from quantum.openstack.common import rpc from quantum.plugins.hyperv import agent_notifier_api as ana from quantum.plugins.hyperv.common import constants +from quantum.tests import base -class rpcHyperVApiTestCase(testtools.TestCase): +class rpcHyperVApiTestCase(base.BaseTestCase): def _test_hyperv_quantum_api( self, rpcapi, topic, method, rpc_method, **kwargs): diff --git a/quantum/tests/unit/linuxbridge/test_defaults.py b/quantum/tests/unit/linuxbridge/test_defaults.py index d67103c25..2f06086a1 100644 --- a/quantum/tests/unit/linuxbridge/test_defaults.py +++ b/quantum/tests/unit/linuxbridge/test_defaults.py @@ -14,13 +14,13 @@ # limitations under the License. from oslo.config import cfg -import testtools #NOTE this import loads tests required options from quantum.plugins.linuxbridge.common import config +from quantum.tests import base -class ConfigurationTest(testtools.TestCase): +class ConfigurationTest(base.BaseTestCase): def test_defaults(self): self.assertEqual(-1, diff --git a/quantum/tests/unit/linuxbridge/test_lb_db.py b/quantum/tests/unit/linuxbridge/test_lb_db.py index e8007976f..ae539f05b 100644 --- a/quantum/tests/unit/linuxbridge/test_lb_db.py +++ b/quantum/tests/unit/linuxbridge/test_lb_db.py @@ -19,6 +19,7 @@ from testtools import matchers from quantum.common import exceptions as q_exc from quantum.db import api as db from quantum.plugins.linuxbridge.db import l2network_db_v2 as lb_db +from quantum.tests import base from quantum.tests.unit import test_db_plugin as test_plugin PHYS_NET = 'physnet1' @@ -30,7 +31,7 @@ UPDATED_VLAN_RANGES = {PHYS_NET: [(VLAN_MIN + 5, VLAN_MAX + 5)], PHYS_NET_2: [(VLAN_MIN + 20, VLAN_MAX + 20)]} -class NetworkStatesTest(testtools.TestCase): +class NetworkStatesTest(base.BaseTestCase): def setUp(self): super(NetworkStatesTest, self).setUp() lb_db.initialize() diff --git a/quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py b/quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py index da2900227..1ab61d6f4 100644 --- a/quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py +++ b/quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py @@ -22,9 +22,10 @@ import testtools from quantum.plugins.linuxbridge.agent import linuxbridge_quantum_agent from quantum.plugins.linuxbridge.common import constants as lconst +from quantum.tests import base -class TestLinuxBridge(testtools.TestCase): +class TestLinuxBridge(base.BaseTestCase): def setUp(self): super(TestLinuxBridge, self).setUp() @@ -56,7 +57,7 @@ class TestLinuxBridge(testtools.TestCase): self.assertTrue(vlan_bridge_func.called) -class TestLinuxBridgeAgent(testtools.TestCase): +class TestLinuxBridgeAgent(base.BaseTestCase): def setUp(self): super(TestLinuxBridgeAgent, self).setUp() diff --git a/quantum/tests/unit/linuxbridge/test_rpcapi.py b/quantum/tests/unit/linuxbridge/test_rpcapi.py index bf205118f..939a54143 100644 --- a/quantum/tests/unit/linuxbridge/test_rpcapi.py +++ b/quantum/tests/unit/linuxbridge/test_rpcapi.py @@ -19,16 +19,16 @@ Unit Tests for linuxbridge rpc """ import stubout -import testtools from quantum.agent import rpc as agent_rpc from quantum.common import topics from quantum.openstack.common import context from quantum.openstack.common import rpc from quantum.plugins.linuxbridge import lb_quantum_plugin as plb +from quantum.tests import base -class rpcApiTestCase(testtools.TestCase): +class rpcApiTestCase(base.BaseTestCase): def _test_lb_api(self, rpcapi, topic, method, rpc_method, **kwargs): ctxt = context.RequestContext('fake_user', 'fake_project') diff --git a/quantum/tests/unit/metaplugin/test_metaplugin.py b/quantum/tests/unit/metaplugin/test_metaplugin.py index f9c721fbc..16926c742 100644 --- a/quantum/tests/unit/metaplugin/test_metaplugin.py +++ b/quantum/tests/unit/metaplugin/test_metaplugin.py @@ -30,6 +30,7 @@ from quantum.extensions.flavor import (FLAVOR_NETWORK, FLAVOR_ROUTER) from quantum.openstack.common import uuidutils from quantum.plugins.metaplugin.meta_quantum_plugin import FlavorNotFound from quantum.plugins.metaplugin.meta_quantum_plugin import MetaPluginV2 +from quantum.tests import base CONF_FILE = "" ROOTDIR = os.path.dirname(os.path.dirname(__file__)) @@ -67,7 +68,7 @@ def setup_metaplugin_conf(): 'quantum.openstack.common.rpc.impl_fake') -class MetaQuantumPluginV2Test(testtools.TestCase): +class MetaQuantumPluginV2Test(base.BaseTestCase): """Class conisting of MetaQuantumPluginV2 unit tests""" def setUp(self): diff --git a/quantum/tests/unit/midonet/test_midonet_lib.py b/quantum/tests/unit/midonet/test_midonet_lib.py index 6774a1636..6fdefe9e6 100644 --- a/quantum/tests/unit/midonet/test_midonet_lib.py +++ b/quantum/tests/unit/midonet/test_midonet_lib.py @@ -19,15 +19,15 @@ # @author: Ryu Ishimoto, Midokura Japan KK # @author: Tomoe Sugihara, Midokura Japan KK -import testtools import uuid import mock from quantum.plugins.midonet import midonet_lib +from quantum.tests import base -class MidonetLibTestCase(testtools.TestCase): +class MidonetLibTestCase(base.BaseTestCase): def setUp(self): super(MidonetLibTestCase, self).setUp() diff --git a/quantum/tests/unit/nec/test_config.py b/quantum/tests/unit/nec/test_config.py index 60699dccb..f0347aa90 100644 --- a/quantum/tests/unit/nec/test_config.py +++ b/quantum/tests/unit/nec/test_config.py @@ -15,12 +15,11 @@ # under the License. # @author: Ryota MIBU -import testtools - from quantum.plugins.nec.common import config +from quantum.tests import base -class ConfigurationTest(testtools.TestCase): +class ConfigurationTest(base.BaseTestCase): def test_defaults(self): self.assertEqual(-1, config.CONF.DATABASE.sql_max_retries) diff --git a/quantum/tests/unit/nec/test_db.py b/quantum/tests/unit/nec/test_db.py index 0975b4034..1d8a43908 100644 --- a/quantum/tests/unit/nec/test_db.py +++ b/quantum/tests/unit/nec/test_db.py @@ -16,16 +16,16 @@ # @author: Ryota MIBU import random -import testtools from quantum.db import api as db_api from quantum.openstack.common import uuidutils from quantum.plugins.nec.common import exceptions as nexc from quantum.plugins.nec.db import api as ndb from quantum.plugins.nec.db import models as nmodels +from quantum.tests import base -class NECPluginV2DBTestBase(testtools.TestCase): +class NECPluginV2DBTestBase(base.BaseTestCase): """Class conisting of NECPluginV2 DB unit tests""" def setUp(self): diff --git a/quantum/tests/unit/nec/test_ofc_manager.py b/quantum/tests/unit/nec/test_ofc_manager.py index b42e1b6b7..899be61ce 100644 --- a/quantum/tests/unit/nec/test_ofc_manager.py +++ b/quantum/tests/unit/nec/test_ofc_manager.py @@ -15,17 +15,16 @@ # under the License. # @author: Ryota MIBU -import testtools - from quantum import context from quantum.openstack.common import uuidutils from quantum.plugins.nec.common import config from quantum.plugins.nec.db import api as ndb from quantum.plugins.nec.db import models as nmodels from quantum.plugins.nec import ofc_manager +from quantum.tests import base -class OFCManagerTestBase(testtools.TestCase): +class OFCManagerTestBase(base.BaseTestCase): """Class conisting of OFCManager unit tests""" def setUp(self): diff --git a/quantum/tests/unit/nec/test_pfc_driver.py b/quantum/tests/unit/nec/test_pfc_driver.py index 91b5d3577..c78f89d7d 100644 --- a/quantum/tests/unit/nec/test_pfc_driver.py +++ b/quantum/tests/unit/nec/test_pfc_driver.py @@ -19,7 +19,6 @@ import random import string import mox -import testtools from quantum import context from quantum.openstack.common import uuidutils @@ -27,6 +26,7 @@ from quantum.plugins.nec.common import ofc_client as ofc from quantum.plugins.nec.db import api as ndb from quantum.plugins.nec.db import models as nmodels from quantum.plugins.nec import drivers +from quantum.tests import base class TestConfig(object): @@ -43,7 +43,7 @@ def _ofc(id): return "ofc-%s" % id -class PFCDriverTestBase(testtools.TestCase): +class PFCDriverTestBase(base.BaseTestCase): driver = 'quantum.plugins.nec.drivers.pfc.PFCDriverBase' @@ -192,7 +192,7 @@ class PFCV4DriverTest(PFCDriverTestBase): driver = 'pfc_v4' -class PFCDriverStringTest(testtools.TestCase): +class PFCDriverStringTest(base.BaseTestCase): driver = 'quantum.plugins.nec.drivers.pfc.PFCDriverBase' @@ -235,7 +235,7 @@ class PFCDriverStringTest(testtools.TestCase): self.assertEqual(exp_str, ret_str) -class PFCIdConvertTest(testtools.TestCase): +class PFCIdConvertTest(base.BaseTestCase): driver = 'quantum.plugins.nec.drivers.pfc.PFCDriverBase' def setUp(self): diff --git a/quantum/tests/unit/nec/test_trema_driver.py b/quantum/tests/unit/nec/test_trema_driver.py index a78523496..dd369196b 100644 --- a/quantum/tests/unit/nec/test_trema_driver.py +++ b/quantum/tests/unit/nec/test_trema_driver.py @@ -16,7 +16,6 @@ # @author: Ryota MIBU import mox -import testtools from quantum import context from quantum.openstack.common import uuidutils @@ -24,6 +23,7 @@ from quantum.plugins.nec.common import ofc_client from quantum.plugins.nec.db import api as ndb from quantum.plugins.nec.db import models as nmodels from quantum.plugins.nec import drivers +from quantum.tests import base class TestConfig(object): @@ -32,7 +32,7 @@ class TestConfig(object): port = 8888 -class TremaDriverTestBase(testtools.TestCase): +class TremaDriverTestBase(base.BaseTestCase): driver_name = "trema" @@ -245,7 +245,7 @@ def generate_random_ids(count=1): return [uuidutils.generate_uuid() for i in xrange(count)] -class TremaIdConvertTest(testtools.TestCase): +class TremaIdConvertTest(base.BaseTestCase): driver_name = 'trema' def setUp(self): @@ -288,7 +288,7 @@ class TremaIdConvertTest(testtools.TestCase): self.assertEqual(ret, ofc_f_id) -class TremaIdConvertTestBase(testtools.TestCase): +class TremaIdConvertTestBase(base.BaseTestCase): def setUp(self): super(TremaIdConvertTestBase, self).setUp() self.mox = mox.Mox() diff --git a/quantum/tests/unit/nicira/test_defaults.py b/quantum/tests/unit/nicira/test_defaults.py index fffb79630..3e5580e1b 100644 --- a/quantum/tests/unit/nicira/test_defaults.py +++ b/quantum/tests/unit/nicira/test_defaults.py @@ -13,14 +13,13 @@ # under the License. # -import testtools - from oslo.config import cfg from quantum.plugins.nicira.nicira_nvp_plugin.common import config +from quantum.tests import base -class ConfigurationTest(testtools.TestCase): +class ConfigurationTest(base.BaseTestCase): def test_defaults(self): self.assertEqual(-1, cfg.CONF.DATABASE.sql_max_retries) diff --git a/quantum/tests/unit/nicira/test_networkgw.py b/quantum/tests/unit/nicira/test_networkgw.py index 0ba10bc30..7f7c8f787 100644 --- a/quantum/tests/unit/nicira/test_networkgw.py +++ b/quantum/tests/unit/nicira/test_networkgw.py @@ -32,6 +32,7 @@ from quantum import manager from quantum.plugins.nicira.nicira_nvp_plugin.extensions import (nvp_networkgw as networkgw) from quantum.plugins.nicira.nicira_nvp_plugin import nicira_networkgw_db +from quantum.tests import base from quantum.tests.unit import test_api_v2 from quantum.tests.unit import test_db_plugin from quantum.tests.unit import test_extensions @@ -53,7 +54,7 @@ class TestExtensionManager(object): return [] -class NetworkGatewayExtensionTestCase(testtools.TestCase): +class NetworkGatewayExtensionTestCase(base.BaseTestCase): def setUp(self): super(NetworkGatewayExtensionTestCase, self).setUp() diff --git a/quantum/tests/unit/nicira/test_nvp_api_common.py b/quantum/tests/unit/nicira/test_nvp_api_common.py index c9b774d4a..7ec1bd438 100644 --- a/quantum/tests/unit/nicira/test_nvp_api_common.py +++ b/quantum/tests/unit/nicira/test_nvp_api_common.py @@ -8,14 +8,12 @@ # System import httplib -# Third party -import testtools - # Local import quantum.plugins.nicira.nicira_nvp_plugin.api_client.common as naco +from quantum.tests import base -class NvpApiCommonTest(testtools.TestCase): +class NvpApiCommonTest(base.BaseTestCase): def test_conn_str(self): conn = httplib.HTTPSConnection('localhost', 4242, timeout=0) diff --git a/quantum/tests/unit/nicira/test_nvp_api_request.py b/quantum/tests/unit/nicira/test_nvp_api_request.py index 005449a2c..2343e2297 100644 --- a/quantum/tests/unit/nicira/test_nvp_api_request.py +++ b/quantum/tests/unit/nicira/test_nvp_api_request.py @@ -10,7 +10,7 @@ eventlet.monkey_patch() import logging import urllib2 -import testtools +from quantum.tests import base logging.basicConfig(level=logging.DEBUG) lg = logging.getLogger("test_nvp_api_request") @@ -22,6 +22,6 @@ def fetch(url): return urllib2.urlopen(url).read() -class NvpApiRequestTest(testtools.TestCase): +class NvpApiRequestTest(base.BaseTestCase): pass diff --git a/quantum/tests/unit/nicira/test_nvp_api_request_eventlet.py b/quantum/tests/unit/nicira/test_nvp_api_request_eventlet.py index 4a475c7dd..06ca84aee 100644 --- a/quantum/tests/unit/nicira/test_nvp_api_request_eventlet.py +++ b/quantum/tests/unit/nicira/test_nvp_api_request_eventlet.py @@ -21,12 +21,12 @@ import eventlet from eventlet.green import urllib2 from mock import Mock from mock import patch -import testtools from quantum.plugins.nicira.nicira_nvp_plugin.api_client import ( client_eventlet as nace, request_eventlet as nare, ) +from quantum.tests import base logging.basicConfig(level=logging.DEBUG) @@ -40,7 +40,7 @@ def fetch(url): return urllib2.urlopen(url).read() -class NvpApiRequestEventletTest(testtools.TestCase): +class NvpApiRequestEventletTest(base.BaseTestCase): def setUp(self): diff --git a/quantum/tests/unit/nicira/test_nvplib.py b/quantum/tests/unit/nicira/test_nvplib.py index 0648c975c..3e41456a1 100644 --- a/quantum/tests/unit/nicira/test_nvplib.py +++ b/quantum/tests/unit/nicira/test_nvplib.py @@ -18,13 +18,12 @@ import mock import os -import testtools - from quantum.openstack.common import jsonutils as json import quantum.plugins.nicira.nicira_nvp_plugin as nvp_plugin from quantum.plugins.nicira.nicira_nvp_plugin import nvp_cluster from quantum.plugins.nicira.nicira_nvp_plugin import NvpApiClient from quantum.plugins.nicira.nicira_nvp_plugin import nvplib +from quantum.tests import base from quantum.tests.unit.nicira import fake_nvpapiclient from quantum.tests.unit import test_api_v2 @@ -32,7 +31,7 @@ NICIRA_PKG_PATH = nvp_plugin.__name__ _uuid = test_api_v2._uuid -class NvplibTestCase(testtools.TestCase): +class NvplibTestCase(base.BaseTestCase): def setUp(self): # mock nvp api client diff --git a/quantum/tests/unit/openvswitch/test_ovs_db.py b/quantum/tests/unit/openvswitch/test_ovs_db.py index 452e1c5ab..85768c106 100644 --- a/quantum/tests/unit/openvswitch/test_ovs_db.py +++ b/quantum/tests/unit/openvswitch/test_ovs_db.py @@ -19,6 +19,7 @@ from testtools import matchers from quantum.common import exceptions as q_exc from quantum.db import api as db from quantum.plugins.openvswitch import ovs_db_v2 +from quantum.tests import base from quantum.tests.unit import test_db_plugin as test_plugin PHYS_NET = 'physnet1' @@ -34,7 +35,7 @@ TUNNEL_RANGES = [(TUN_MIN, TUN_MAX)] UPDATED_TUNNEL_RANGES = [(TUN_MIN + 5, TUN_MAX + 5)] -class VlanAllocationsTest(testtools.TestCase): +class VlanAllocationsTest(base.BaseTestCase): def setUp(self): super(VlanAllocationsTest, self).setUp() ovs_db_v2.initialize() @@ -178,7 +179,7 @@ class VlanAllocationsTest(testtools.TestCase): ovs_db_v2.sync_vlan_allocations({}) -class TunnelAllocationsTest(testtools.TestCase): +class TunnelAllocationsTest(base.BaseTestCase): def setUp(self): super(TunnelAllocationsTest, self).setUp() ovs_db_v2.initialize() diff --git a/quantum/tests/unit/openvswitch/test_ovs_defaults.py b/quantum/tests/unit/openvswitch/test_ovs_defaults.py index 898a035fa..4eabe0fea 100644 --- a/quantum/tests/unit/openvswitch/test_ovs_defaults.py +++ b/quantum/tests/unit/openvswitch/test_ovs_defaults.py @@ -13,15 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -import testtools - from oslo.config import cfg #NOTE this import loads tests required options from quantum.plugins.openvswitch.common import config +from quantum.tests import base -class ConfigurationTest(testtools.TestCase): +class ConfigurationTest(base.BaseTestCase): def test_defaults(self): self.assertEqual('br-int', cfg.CONF.OVS.integration_bridge) diff --git a/quantum/tests/unit/openvswitch/test_ovs_lib.py b/quantum/tests/unit/openvswitch/test_ovs_lib.py index e3fb81a64..790c756cf 100644 --- a/quantum/tests/unit/openvswitch/test_ovs_lib.py +++ b/quantum/tests/unit/openvswitch/test_ovs_lib.py @@ -16,13 +16,13 @@ # @author: Dan Wendlandt, Nicira, Inc. import mox -import testtools from quantum.agent.linux import ovs_lib, utils from quantum.openstack.common import uuidutils +from quantum.tests import base -class OVS_Lib_Test(testtools.TestCase): +class OVS_Lib_Test(base.BaseTestCase): """ A test suite to excercise the OVS libraries shared by Quantum agents. Note: these tests do not actually execute ovs-* utilities, and thus diff --git a/quantum/tests/unit/openvswitch/test_ovs_quantum_agent.py b/quantum/tests/unit/openvswitch/test_ovs_quantum_agent.py index 0744f9c5b..41e9bc4a6 100644 --- a/quantum/tests/unit/openvswitch/test_ovs_quantum_agent.py +++ b/quantum/tests/unit/openvswitch/test_ovs_quantum_agent.py @@ -19,13 +19,14 @@ from oslo.config import cfg import testtools from quantum.plugins.openvswitch.agent import ovs_quantum_agent +from quantum.tests import base NOTIFIER = ('quantum.plugins.openvswitch.' 'ovs_quantum_plugin.AgentNotifierApi') -class CreateAgentConfigMap(testtools.TestCase): +class CreateAgentConfigMap(base.BaseTestCase): def test_create_agent_config_map_succeeds(self): self.assertTrue(ovs_quantum_agent.create_agent_config_map(cfg.CONF)) @@ -38,7 +39,7 @@ class CreateAgentConfigMap(testtools.TestCase): ovs_quantum_agent.create_agent_config_map(cfg.CONF) -class TestOvsQuantumAgent(testtools.TestCase): +class TestOvsQuantumAgent(base.BaseTestCase): def setUp(self): super(TestOvsQuantumAgent, self).setUp() diff --git a/quantum/tests/unit/openvswitch/test_ovs_rpcapi.py b/quantum/tests/unit/openvswitch/test_ovs_rpcapi.py index 32224335b..93207ca41 100644 --- a/quantum/tests/unit/openvswitch/test_ovs_rpcapi.py +++ b/quantum/tests/unit/openvswitch/test_ovs_rpcapi.py @@ -19,7 +19,6 @@ Unit Tests for openvswitch rpc """ import stubout -import testtools from quantum.agent import rpc as agent_rpc from quantum.common import topics @@ -27,9 +26,10 @@ from quantum.openstack.common import context from quantum.openstack.common import rpc from quantum.plugins.openvswitch.common import constants from quantum.plugins.openvswitch import ovs_quantum_plugin as povs +from quantum.tests import base -class rpcApiTestCase(testtools.TestCase): +class rpcApiTestCase(base.BaseTestCase): def _test_ovs_api(self, rpcapi, topic, method, rpc_method, **kwargs): ctxt = context.RequestContext('fake_user', 'fake_project') diff --git a/quantum/tests/unit/openvswitch/test_ovs_tunnel.py b/quantum/tests/unit/openvswitch/test_ovs_tunnel.py index 79460590c..aaf918f05 100644 --- a/quantum/tests/unit/openvswitch/test_ovs_tunnel.py +++ b/quantum/tests/unit/openvswitch/test_ovs_tunnel.py @@ -18,7 +18,6 @@ import mox from oslo.config import cfg -import testtools from quantum.agent.linux import ip_lib from quantum.agent.linux import ovs_lib @@ -27,6 +26,7 @@ from quantum.agent import rpc from quantum.openstack.common import log from quantum.plugins.openvswitch.agent import ovs_quantum_agent from quantum.plugins.openvswitch.common import constants +from quantum.tests import base # Useful global dummy variables. @@ -59,7 +59,7 @@ class DummyVlanBinding: self.vlan_id = vlan_id -class TunnelTest(testtools.TestCase): +class TunnelTest(base.BaseTestCase): def setUp(self): super(TunnelTest, self).setUp() diff --git a/quantum/tests/unit/ryu/test_defaults.py b/quantum/tests/unit/ryu/test_defaults.py index 40fc8d679..91442650c 100644 --- a/quantum/tests/unit/ryu/test_defaults.py +++ b/quantum/tests/unit/ryu/test_defaults.py @@ -16,13 +16,13 @@ # under the License. from oslo.config import cfg -import testtools #NOTE this import loads tests required options from quantum.plugins.ryu.common import config +from quantum.tests import base -class ConfigurationTest(testtools.TestCase): +class ConfigurationTest(base.BaseTestCase): """Configuration file Tests""" def test_defaults(self): self.assertEqual('br-int', cfg.CONF.OVS.integration_bridge) diff --git a/quantum/tests/unit/ryu/test_ryu_agent.py b/quantum/tests/unit/ryu/test_ryu_agent.py index 0ebd6aeac..223c4afe9 100644 --- a/quantum/tests/unit/ryu/test_ryu_agent.py +++ b/quantum/tests/unit/ryu/test_ryu_agent.py @@ -17,14 +17,13 @@ from contextlib import nested import httplib import mock -from oslo.config import cfg -import testtools from quantum.openstack.common import importutils +from quantum.tests import base from quantum.tests.unit.ryu import fake_ryu -class RyuAgentTestCase(testtools.TestCase): +class RyuAgentTestCase(base.BaseTestCase): _AGENT_NAME = 'quantum.plugins.ryu.agent.ryu_quantum_agent' diff --git a/quantum/tests/unit/services/agent_loadbalancer/agent/test_api.py b/quantum/tests/unit/services/agent_loadbalancer/agent/test_api.py index 2d5a2ee11..9b36cd4f7 100644 --- a/quantum/tests/unit/services/agent_loadbalancer/agent/test_api.py +++ b/quantum/tests/unit/services/agent_loadbalancer/agent/test_api.py @@ -17,12 +17,12 @@ # @author: Mark McClain, DreamHost import mock -import testtools from quantum.plugins.services.agent_loadbalancer.agent import api +from quantum.tests import base -class TestApiCache(testtools.TestCase): +class TestApiCache(base.BaseTestCase): def setUp(self): super(TestApiCache, self).setUp() self.addCleanup(mock.patch.stopall) diff --git a/quantum/tests/unit/services/agent_loadbalancer/agent/test_init.py b/quantum/tests/unit/services/agent_loadbalancer/agent/test_init.py index a33a36519..52342604c 100644 --- a/quantum/tests/unit/services/agent_loadbalancer/agent/test_init.py +++ b/quantum/tests/unit/services/agent_loadbalancer/agent/test_init.py @@ -22,9 +22,10 @@ from oslo.config import cfg import testtools from quantum.plugins.services.agent_loadbalancer import agent +from quantum.tests import base -class TestLbaasService(testtools.TestCase): +class TestLbaasService(base.BaseTestCase): def setUp(self): super(TestLbaasService, self).setUp() self.addCleanup(cfg.CONF.reset) diff --git a/quantum/tests/unit/services/agent_loadbalancer/agent/test_manager.py b/quantum/tests/unit/services/agent_loadbalancer/agent/test_manager.py index b025809c0..e284a3126 100644 --- a/quantum/tests/unit/services/agent_loadbalancer/agent/test_manager.py +++ b/quantum/tests/unit/services/agent_loadbalancer/agent/test_manager.py @@ -19,12 +19,12 @@ import contextlib import mock -import testtools from quantum.plugins.services.agent_loadbalancer.agent import manager +from quantum.tests import base -class TestLogicalDeviceCache(testtools.TestCase): +class TestLogicalDeviceCache(base.BaseTestCase): def setUp(self): super(TestLogicalDeviceCache, self).setUp() self.cache = manager.LogicalDeviceCache() @@ -131,7 +131,7 @@ class TestLogicalDeviceCache(testtools.TestCase): self.assertEqual(self.cache.get_pool_ids(), ['pool_id']) -class TestManager(testtools.TestCase): +class TestManager(base.BaseTestCase): def setUp(self): super(TestManager, self).setUp() self.addCleanup(mock.patch.stopall) diff --git a/quantum/tests/unit/services/agent_loadbalancer/driver/haproxy/test_cfg.py b/quantum/tests/unit/services/agent_loadbalancer/driver/haproxy/test_cfg.py index 4b95a2310..f07d383cd 100644 --- a/quantum/tests/unit/services/agent_loadbalancer/driver/haproxy/test_cfg.py +++ b/quantum/tests/unit/services/agent_loadbalancer/driver/haproxy/test_cfg.py @@ -19,14 +19,14 @@ import contextlib import mock -import testtools from oslo.config import cfg as config from quantum.plugins.services.agent_loadbalancer.drivers.haproxy import cfg +from quantum.tests import base -class TestHaproxyCfg(testtools.TestCase): +class TestHaproxyCfg(base.BaseTestCase): def test_save_config(self): with contextlib.nested( mock.patch('quantum.plugins.services.agent_loadbalancer.' diff --git a/quantum/tests/unit/services/agent_loadbalancer/driver/haproxy/test_namespace_driver.py b/quantum/tests/unit/services/agent_loadbalancer/driver/haproxy/test_namespace_driver.py index ccb4c91d2..b7cb98042 100644 --- a/quantum/tests/unit/services/agent_loadbalancer/driver/haproxy/test_namespace_driver.py +++ b/quantum/tests/unit/services/agent_loadbalancer/driver/haproxy/test_namespace_driver.py @@ -18,15 +18,15 @@ import contextlib import mock -import testtools from quantum.common import exceptions from quantum.plugins.services.agent_loadbalancer.drivers.haproxy import ( namespace_driver ) +from quantum.tests import base -class TestHaproxyNSDriver(testtools.TestCase): +class TestHaproxyNSDriver(base.BaseTestCase): def setUp(self): super(TestHaproxyNSDriver, self).setUp() diff --git a/quantum/tests/unit/services/agent_loadbalancer/test_plugin.py b/quantum/tests/unit/services/agent_loadbalancer/test_plugin.py index a4289ef0c..f2b0f229b 100644 --- a/quantum/tests/unit/services/agent_loadbalancer/test_plugin.py +++ b/quantum/tests/unit/services/agent_loadbalancer/test_plugin.py @@ -18,12 +18,12 @@ # @author: Mark McClain, DreamHost import mock -import testtools from quantum import context from quantum import manager from quantum.plugins.common import constants from quantum.plugins.services.agent_loadbalancer import plugin +from quantum.tests import base from quantum.tests.unit.db.loadbalancer import test_db_loadbalancer @@ -171,7 +171,7 @@ class TestLoadBalancerCallbacks(TestLoadBalancerPluginBase): ) -class TestLoadBalancerAgentApi(testtools.TestCase): +class TestLoadBalancerAgentApi(base.BaseTestCase): def setUp(self): super(TestLoadBalancerAgentApi, self).setUp() self.addCleanup(mock.patch.stopall) diff --git a/quantum/tests/unit/test_agent_config.py b/quantum/tests/unit/test_agent_config.py index 5a01c43e1..4cb3c48bf 100644 --- a/quantum/tests/unit/test_agent_config.py +++ b/quantum/tests/unit/test_agent_config.py @@ -15,9 +15,8 @@ # License for the specific language governing permissions and limitations # under the License. -import testtools - from quantum.agent.common import config +from quantum.tests import base def test_setup_conf(): @@ -25,7 +24,7 @@ def test_setup_conf(): assert conf.state_path.endswith('/var/lib/quantum') -class TestRootHelper(testtools.TestCase): +class TestRootHelper(base.BaseTestCase): def test_agent_root_helper(self): conf = config.setup_conf() diff --git a/quantum/tests/unit/test_agent_linux_utils.py b/quantum/tests/unit/test_agent_linux_utils.py index bd94dd6a9..80ada7de3 100644 --- a/quantum/tests/unit/test_agent_linux_utils.py +++ b/quantum/tests/unit/test_agent_linux_utils.py @@ -17,12 +17,12 @@ import fixtures import mock -import testtools from quantum.agent.linux import utils +from quantum.tests import base -class AgentUtilsExecuteTest(testtools.TestCase): +class AgentUtilsExecuteTest(base.BaseTestCase): def setUp(self): super(AgentUtilsExecuteTest, self).setUp() self.root_helper = "echo" @@ -63,7 +63,7 @@ class AgentUtilsExecuteTest(testtools.TestCase): self.assertEqual(result, "%s\n" % self.test_file) -class AgentUtilsGetInterfaceMAC(testtools.TestCase): +class AgentUtilsGetInterfaceMAC(base.BaseTestCase): def test_get_interface_mac(self): expect_val = '01:02:03:04:05:06' with mock.patch('fcntl.ioctl') as ioctl: @@ -74,7 +74,7 @@ class AgentUtilsGetInterfaceMAC(testtools.TestCase): self.assertEqual(actual_val, expect_val) -class AgentUtilsReplaceFile(testtools.TestCase): +class AgentUtilsReplaceFile(base.BaseTestCase): def test_replace_file(self): # make file to replace with mock.patch('tempfile.NamedTemporaryFile') as ntf: diff --git a/quantum/tests/unit/test_agent_netns_cleanup.py b/quantum/tests/unit/test_agent_netns_cleanup.py index 45f284837..243b93775 100644 --- a/quantum/tests/unit/test_agent_netns_cleanup.py +++ b/quantum/tests/unit/test_agent_netns_cleanup.py @@ -17,18 +17,18 @@ import mock from oslo.config import cfg -import testtools from quantum.agent import netns_cleanup_util as util +from quantum.tests import base -class TestNullDelegate(testtools.TestCase): +class TestNullDelegate(base.BaseTestCase): def test_getattribute(self): null_delegate = util.NullDelegate() self.assertIsNone(null_delegate.test()) -class TestNetnsCleanup(testtools.TestCase): +class TestNetnsCleanup(base.BaseTestCase): def setUp(self): super(TestNetnsCleanup, self).setUp() self.addCleanup(cfg.CONF.reset) diff --git a/quantum/tests/unit/test_agent_ovs_cleanup.py b/quantum/tests/unit/test_agent_ovs_cleanup.py index 6ab4b0fdd..8983a35a2 100644 --- a/quantum/tests/unit/test_agent_ovs_cleanup.py +++ b/quantum/tests/unit/test_agent_ovs_cleanup.py @@ -19,15 +19,15 @@ import contextlib import itertools import mock from oslo.config import cfg -import testtools from quantum.agent.linux import ip_lib from quantum.agent.linux import ovs_lib from quantum.agent import ovs_cleanup_util as util from quantum.openstack.common import uuidutils +from quantum.tests import base -class TestOVSCleanup(testtools.TestCase): +class TestOVSCleanup(base.BaseTestCase): def setUp(self): super(TestOVSCleanup, self).setUp() self.addCleanup(cfg.CONF.reset) diff --git a/quantum/tests/unit/test_agent_rpc.py b/quantum/tests/unit/test_agent_rpc.py index b99a202c6..55a915504 100644 --- a/quantum/tests/unit/test_agent_rpc.py +++ b/quantum/tests/unit/test_agent_rpc.py @@ -17,13 +17,13 @@ import mock from oslo.config import cfg -import testtools from quantum.agent import rpc from quantum.openstack.common import context +from quantum.tests import base -class AgentRPCPluginApi(testtools.TestCase): +class AgentRPCPluginApi(base.BaseTestCase): def _test_rpc_call(self, method): agent = rpc.PluginApi('fake_topic') ctxt = context.RequestContext('fake_user', 'fake_project') @@ -47,7 +47,7 @@ class AgentRPCPluginApi(testtools.TestCase): self._test_rpc_call('tunnel_sync') -class AgentRPCMethods(testtools.TestCase): +class AgentRPCMethods(base.BaseTestCase): def test_create_consumers(self): dispatcher = mock.Mock() expected = [ diff --git a/quantum/tests/unit/test_api_api_common.py b/quantum/tests/unit/test_api_api_common.py index a3863bc5c..a936361a7 100644 --- a/quantum/tests/unit/test_api_api_common.py +++ b/quantum/tests/unit/test_api_api_common.py @@ -18,18 +18,18 @@ # @author: Zhongyue Luo, Intel Corporation. # -import testtools from testtools import matchers from webob import exc from quantum.api import api_common as common +from quantum.tests import base class FakeController(common.QuantumController): _resource_name = 'fake' -class APICommonTestCase(testtools.TestCase): +class APICommonTestCase(base.BaseTestCase): def setUp(self): super(APICommonTestCase, self).setUp() self.controller = FakeController(None) diff --git a/quantum/tests/unit/test_api_v2.py b/quantum/tests/unit/test_api_v2.py index 2ed703bd1..c66495218 100644 --- a/quantum/tests/unit/test_api_v2.py +++ b/quantum/tests/unit/test_api_v2.py @@ -20,7 +20,6 @@ import urlparse import mock from oslo.config import cfg -import testtools from testtools import matchers import webob from webob import exc @@ -29,7 +28,7 @@ import webtest from quantum.api import api_common from quantum.api.extensions import PluginAwareExtensionManager from quantum.api.v2 import attributes -from quantum.api.v2 import base +from quantum.api.v2 import base as v2_base from quantum.api.v2 import router from quantum.common import config from quantum.common import constants @@ -38,6 +37,7 @@ from quantum import context from quantum.manager import QuantumManager from quantum.openstack.common.notifier import api as notifer_api from quantum.openstack.common import uuidutils +from quantum.tests import base from quantum.tests.unit import testlib_api from quantum import wsgi @@ -68,7 +68,7 @@ def _get_path(resource, id=None, action=None, fmt=None): return path -class ResourceIndexTestCase(testtools.TestCase): +class ResourceIndexTestCase(base.BaseTestCase): def test_index_json(self): index = webtest.TestApp(router.Index({'foo': 'bar'})) res = index.get('') @@ -93,7 +93,7 @@ class ResourceIndexTestCase(testtools.TestCase): self.assertTrue(link['rel'] == 'self') -class APIv2TestBase(testtools.TestCase): +class APIv2TestBase(base.BaseTestCase): def setUp(self): super(APIv2TestBase, self).setUp() @@ -1105,7 +1105,7 @@ class JSONV2TestCase(APIv2TestBase, testlib_api.WebTestCase): self.assertEqual(res.status_int, 400) -class SubresourceTest(testtools.TestCase): +class SubresourceTest(base.BaseTestCase): def setUp(self): super(SubresourceTest, self).setUp() @@ -1206,12 +1206,12 @@ class XMLV2TestCase(JSONV2TestCase): fmt = 'xml' -class V2Views(testtools.TestCase): +class V2Views(base.BaseTestCase): def _view(self, keys, collection, resource): data = dict((key, 'value') for key in keys) data['fake'] = 'value' attr_info = attributes.RESOURCE_ATTRIBUTE_MAP[collection] - controller = base.Controller(None, collection, resource, attr_info) + controller = v2_base.Controller(None, collection, resource, attr_info) res = controller._view(data) self.assertTrue('fake' not in res) for key in keys: @@ -1329,7 +1329,7 @@ class QuotaTest(APIv2TestBase): self.assertEqual(res.status_int, exc.HTTPCreated.code) -class ExtensionTestCase(testtools.TestCase): +class ExtensionTestCase(base.BaseTestCase): def setUp(self): super(ExtensionTestCase, self).setUp() plugin = 'quantum.quantum_plugin_base_v2.QuantumPluginBaseV2' @@ -1419,7 +1419,7 @@ class TestSubresourcePlugin(): return -class ListArgsTestCase(testtools.TestCase): +class ListArgsTestCase(base.BaseTestCase): def test_list_args(self): path = '/?fields=4&foo=3&fields=2&bar=1' request = webob.Request.blank(path) @@ -1433,7 +1433,7 @@ class ListArgsTestCase(testtools.TestCase): self.assertEqual([], api_common.list_args(request, 'fields')) -class FiltersTestCase(testtools.TestCase): +class FiltersTestCase(base.BaseTestCase): def test_all_skip_args(self): path = '/?fields=4&fields=3&fields=2&fields=1' request = webob.Request.blank(path) @@ -1481,7 +1481,7 @@ class FiltersTestCase(testtools.TestCase): self.assertEqual(actual_val, expect_val) -class CreateResourceTestCase(testtools.TestCase): +class CreateResourceTestCase(base.BaseTestCase): def test_resource_creation(self): - resource = base.create_resource('fakes', 'fake', None, {}) + resource = v2_base.create_resource('fakes', 'fake', None, {}) self.assertIsInstance(resource, webob.dec.wsgify) diff --git a/quantum/tests/unit/test_api_v2_resource.py b/quantum/tests/unit/test_api_v2_resource.py index e89b577ee..7328c1c6d 100644 --- a/quantum/tests/unit/test_api_v2_resource.py +++ b/quantum/tests/unit/test_api_v2_resource.py @@ -19,17 +19,17 @@ # import mock -import testtools from webob import exc import webtest from quantum.api.v2 import resource as wsgi_resource from quantum.common import exceptions as q_exc from quantum import context +from quantum.tests import base from quantum import wsgi -class RequestTestCase(testtools.TestCase): +class RequestTestCase(base.BaseTestCase): def setUp(self): super(RequestTestCase, self).setUp() self.req = wsgi_resource.Request({'foo': 'bar'}) @@ -99,7 +99,7 @@ class RequestTestCase(testtools.TestCase): self.assertTrue(self.req.context.is_admin) -class ResourceTestCase(testtools.TestCase): +class ResourceTestCase(base.BaseTestCase): def test_unmapped_quantum_error(self): controller = mock.MagicMock() controller.test.side_effect = q_exc.QuantumException() diff --git a/quantum/tests/unit/test_attributes.py b/quantum/tests/unit/test_attributes.py index 9863cbbe5..d91720ef3 100644 --- a/quantum/tests/unit/test_attributes.py +++ b/quantum/tests/unit/test_attributes.py @@ -19,9 +19,10 @@ import testtools from quantum.api.v2 import attributes from quantum.common import exceptions as q_exc +from quantum.tests import base -class TestAttributes(testtools.TestCase): +class TestAttributes(base.BaseTestCase): def _construct_dict_and_constraints(self): """ Constructs a test dictionary and a definition of constraints. @@ -537,7 +538,7 @@ class TestAttributes(testtools.TestCase): self.assertIsNone(msg) -class TestConvertToBoolean(testtools.TestCase): +class TestConvertToBoolean(base.BaseTestCase): def test_convert_to_boolean_bool(self): self.assertIs(attributes.convert_to_boolean(True), True) @@ -562,7 +563,7 @@ class TestConvertToBoolean(testtools.TestCase): '7') -class TestConvertToInt(testtools.TestCase): +class TestConvertToInt(base.BaseTestCase): def test_convert_to_int_int(self): self.assertEqual(attributes.convert_to_int(-1), -1) @@ -596,7 +597,7 @@ class TestConvertToInt(testtools.TestCase): value, attributes.convert_none_to_empty_list(value)) -class TestConvertKvp(testtools.TestCase): +class TestConvertKvp(base.BaseTestCase): def test_convert_kvp_list_to_dict_succeeds_for_missing_values(self): result = attributes.convert_kvp_list_to_dict(['True']) @@ -628,7 +629,7 @@ class TestConvertKvp(testtools.TestCase): self.assertEqual(['a', 'a=a'], result) -class TestConvertToList(testtools.TestCase): +class TestConvertToList(base.BaseTestCase): def test_convert_to_empty_list(self): for item in (None, [], (), {}): diff --git a/quantum/tests/unit/test_auth.py b/quantum/tests/unit/test_auth.py index 1f0a69108..14e620077 100644 --- a/quantum/tests/unit/test_auth.py +++ b/quantum/tests/unit/test_auth.py @@ -1,10 +1,27 @@ -import testtools +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2012 OpenStack LLC +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + import webob from quantum import auth +from quantum.tests import base -class QuantumKeystoneContextTestCase(testtools.TestCase): +class QuantumKeystoneContextTestCase(base.BaseTestCase): def setUp(self): super(QuantumKeystoneContextTestCase, self).setUp() diff --git a/quantum/tests/unit/test_common_utils.py b/quantum/tests/unit/test_common_utils.py index 64ab401c5..d3cfd397f 100644 --- a/quantum/tests/unit/test_common_utils.py +++ b/quantum/tests/unit/test_common_utils.py @@ -15,9 +15,10 @@ import testtools from quantum.common import utils +from quantum.tests import base -class TestParseMappings(testtools.TestCase): +class TestParseMappings(base.BaseTestCase): def parse(self, mapping_list, unique_values=True): return utils.parse_mappings(mapping_list, unique_values) diff --git a/quantum/tests/unit/test_config.py b/quantum/tests/unit/test_config.py index 5ae77bdec..64f2e7c75 100644 --- a/quantum/tests/unit/test_config.py +++ b/quantum/tests/unit/test_config.py @@ -14,14 +14,14 @@ # limitations under the License. import os -import testtools from oslo.config import cfg from quantum.common import config +from quantum.tests import base -class ConfigurationTest(testtools.TestCase): +class ConfigurationTest(base.BaseTestCase): def test_defaults(self): self.assertEqual('0.0.0.0', cfg.CONF.bind_host) diff --git a/quantum/tests/unit/test_db.py b/quantum/tests/unit/test_db.py index 0f7d9b269..9a9e6456e 100644 --- a/quantum/tests/unit/test_db.py +++ b/quantum/tests/unit/test_db.py @@ -18,12 +18,12 @@ import fixtures import mock from oslo.config import cfg -import testtools import quantum.db.api as db +from quantum.tests import base -class DBTestCase(testtools.TestCase): +class DBTestCase(base.BaseTestCase): def setUp(self): super(DBTestCase, self).setUp() cfg.CONF.set_override('sql_max_retries', 1, 'DATABASE') diff --git a/quantum/tests/unit/test_db_migration.py b/quantum/tests/unit/test_db_migration.py index c9573e064..114f3aae6 100644 --- a/quantum/tests/unit/test_db_migration.py +++ b/quantum/tests/unit/test_db_migration.py @@ -20,13 +20,13 @@ import sys import mock -import testtools from quantum.db import migration from quantum.db.migration import cli +from quantum.tests import base -class TestDbMigration(testtools.TestCase): +class TestDbMigration(base.BaseTestCase): def test_should_run_plugin_in_list(self): self.assertTrue(migration.should_run('foo', ['foo', 'bar'])) self.assertFalse(migration.should_run('foo', ['bar'])) @@ -35,7 +35,7 @@ class TestDbMigration(testtools.TestCase): self.assertTrue(migration.should_run('foo', ['*'])) -class TestCli(testtools.TestCase): +class TestCli(base.BaseTestCase): def setUp(self): super(TestCli, self).setUp() self.do_alembic_cmd_p = mock.patch.object(cli, 'do_alembic_command') diff --git a/quantum/tests/unit/test_db_plugin.py b/quantum/tests/unit/test_db_plugin.py index 3707d5077..b8b61d590 100644 --- a/quantum/tests/unit/test_db_plugin.py +++ b/quantum/tests/unit/test_db_plugin.py @@ -43,6 +43,7 @@ from quantum.db import db_base_plugin_v2 from quantum.db import models_v2 from quantum.manager import QuantumManager from quantum.openstack.common import timeutils +from quantum.tests import base from quantum.tests.unit import test_extensions from quantum.tests.unit import testlib_api @@ -80,6 +81,7 @@ class QuantumDbPluginV2TestCase(testlib_api.WebTestCase): def setUp(self, plugin=None, service_plugins=None): super(QuantumDbPluginV2TestCase, self).setUp() + # NOTE(jkoelker) for a 'pluggable' framework, Quantum sure # doesn't like when the plugin changes ;) db._ENGINE = None @@ -3431,7 +3433,7 @@ class TestSubnetsV2(QuantumDbPluginV2TestCase): self.assertEqual(res.status_int, 204) -class DbModelTestCase(testtools.TestCase): +class DbModelTestCase(base.BaseTestCase): """ DB model tests """ def test_repr(self): """ testing the string representation of 'model' classes """ diff --git a/quantum/tests/unit/test_db_rpc_base.py b/quantum/tests/unit/test_db_rpc_base.py index 136973e37..7039aa339 100644 --- a/quantum/tests/unit/test_db_rpc_base.py +++ b/quantum/tests/unit/test_db_rpc_base.py @@ -14,12 +14,12 @@ # limitations under the License. import mock -import testtools from quantum.db import dhcp_rpc_base +from quantum.tests import base -class TestDhcpRpcCallackMixin(testtools.TestCase): +class TestDhcpRpcCallackMixin(base.BaseTestCase): def setUp(self): super(TestDhcpRpcCallackMixin, self).setUp() diff --git a/quantum/tests/unit/test_debug_commands.py b/quantum/tests/unit/test_debug_commands.py index fb76e76ff..4ece22977 100644 --- a/quantum/tests/unit/test_debug_commands.py +++ b/quantum/tests/unit/test_debug_commands.py @@ -19,12 +19,12 @@ import socket import mock from oslo.config import cfg -import testtools from quantum.agent.common import config from quantum.agent.linux import interface from quantum.debug import commands from quantum.debug.debug_agent import DEVICE_OWNER_PROBE, QuantumDebugAgent +from quantum.tests import base class MyApp(object): @@ -32,7 +32,7 @@ class MyApp(object): self.stdout = _stdout -class TestDebugCommands(testtools.TestCase): +class TestDebugCommands(base.BaseTestCase): def setUp(self): super(TestDebugCommands, self).setUp() cfg.CONF.register_opts(interface.OPTS) diff --git a/quantum/tests/unit/test_dhcp_agent.py b/quantum/tests/unit/test_dhcp_agent.py index da7262a6e..fdfde7327 100644 --- a/quantum/tests/unit/test_dhcp_agent.py +++ b/quantum/tests/unit/test_dhcp_agent.py @@ -14,6 +14,7 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. + import os import socket import sys @@ -32,6 +33,7 @@ from quantum.agent.linux import interface from quantum.common import constants from quantum.common import exceptions from quantum.openstack.common import jsonutils +from quantum.tests import base ROOTDIR = os.path.dirname(os.path.dirname(__file__)) @@ -108,7 +110,7 @@ fake_down_network = FakeModel('12345678-dddd-dddd-1234567890ab', ports=[]) -class TestDhcpAgent(testtools.TestCase): +class TestDhcpAgent(base.BaseTestCase): def setUp(self): super(TestDhcpAgent, self).setUp() cfg.CONF.register_opts(dhcp_agent.DeviceManager.OPTS) @@ -323,7 +325,7 @@ class TestDhcpAgent(testtools.TestCase): self.assertFalse(dhcp.needs_resync) -class TestDhcpAgentEventHandler(testtools.TestCase): +class TestDhcpAgentEventHandler(base.BaseTestCase): def setUp(self): super(TestDhcpAgentEventHandler, self).setUp() cfg.CONF.register_opts(dhcp_agent.DeviceManager.OPTS) @@ -638,7 +640,7 @@ class TestDhcpAgentEventHandler(testtools.TestCase): self.assertEqual(self.call_driver.call_count, 0) -class TestDhcpPluginApiProxy(testtools.TestCase): +class TestDhcpPluginApiProxy(base.BaseTestCase): def setUp(self): super(TestDhcpPluginApiProxy, self).setUp() self.proxy = dhcp_agent.DhcpPluginApi('foo', {}) @@ -707,7 +709,7 @@ class TestDhcpPluginApiProxy(testtools.TestCase): host='foo') -class TestNetworkCache(testtools.TestCase): +class TestNetworkCache(base.BaseTestCase): def test_put_network(self): nc = dhcp_agent.NetworkCache() nc.put(fake_network) @@ -815,7 +817,7 @@ class TestNetworkCache(testtools.TestCase): self.assertEqual(nc.get_port_by_id(fake_port1.id), fake_port1) -class TestDeviceManager(testtools.TestCase): +class TestDeviceManager(base.BaseTestCase): def setUp(self): super(TestDeviceManager, self).setUp() cfg.CONF.register_opts(dhcp_agent.DeviceManager.OPTS) @@ -1010,7 +1012,7 @@ class TestDeviceManager(testtools.TestCase): self.assertEqual(dh.get_device_id(fake_network), expected) -class TestDhcpLeaseRelay(testtools.TestCase): +class TestDhcpLeaseRelay(base.BaseTestCase): def setUp(self): super(TestDhcpLeaseRelay, self).setUp() cfg.CONF.register_opts(dhcp_agent.DhcpLeaseRelay.OPTS) @@ -1135,7 +1137,7 @@ class TestDhcpLeaseRelay(testtools.TestCase): relay._handler)]) -class TestDictModel(testtools.TestCase): +class TestDictModel(base.BaseTestCase): def test_basic_dict(self): d = dict(a=1, b=2) diff --git a/quantum/tests/unit/test_extension_extended_attribute.py b/quantum/tests/unit/test_extension_extended_attribute.py index d738326e4..831a93312 100644 --- a/quantum/tests/unit/test_extension_extended_attribute.py +++ b/quantum/tests/unit/test_extension_extended_attribute.py @@ -20,7 +20,6 @@ Unit tests for extension extended attribute """ from oslo.config import cfg -import testtools import webob.exc as webexc import quantum @@ -29,6 +28,7 @@ from quantum.common import config from quantum import manager from quantum.plugins.common import constants from quantum.plugins.openvswitch import ovs_quantum_plugin +from quantum.tests import base from quantum.tests.unit.extensions import extendedattribute as extattr from quantum.tests.unit import test_api_v2 from quantum.tests.unit import testlib_api @@ -66,7 +66,7 @@ class ExtensionExtendedAttributeTestPlugin( return self.objh[id] -class ExtensionExtendedAttributeTestCase(testtools.TestCase): +class ExtensionExtendedAttributeTestCase(base.BaseTestCase): def setUp(self): super(ExtensionExtendedAttributeTestCase, self).setUp() plugin = ( diff --git a/quantum/tests/unit/test_extensions.py b/quantum/tests/unit/test_extensions.py index 9861da3e9..80dc099f1 100644 --- a/quantum/tests/unit/test_extensions.py +++ b/quantum/tests/unit/test_extensions.py @@ -18,7 +18,6 @@ import os import routes -import testtools import webob import webtest @@ -28,6 +27,7 @@ from quantum.db import db_base_plugin_v2 from quantum.openstack.common import jsonutils from quantum.openstack.common import log as logging from quantum.plugins.common import constants +from quantum.tests import base from quantum.tests.unit import extension_stubs as ext_stubs import quantum.tests.unit.extensions from quantum.tests.unit import testlib_api @@ -65,7 +65,7 @@ class FakePluginWithExtension(db_base_plugin_v2.QuantumDbPluginV2): self._log("method_to_support_foxnsox_extension", context) -class ResourceExtensionTest(testtools.TestCase): +class ResourceExtensionTest(base.BaseTestCase): class ResourceExtensionController(wsgi.Controller): @@ -308,7 +308,7 @@ class ResourceExtensionTest(testtools.TestCase): self.assertEqual(404, response.status_int) -class ActionExtensionTest(testtools.TestCase): +class ActionExtensionTest(base.BaseTestCase): def setUp(self): super(ActionExtensionTest, self).setUp() @@ -355,7 +355,7 @@ class ActionExtensionTest(testtools.TestCase): self.assertEqual(404, response.status_int) -class RequestExtensionTest(testtools.TestCase): +class RequestExtensionTest(base.BaseTestCase): def test_headers_can_be_extended(self): def extend_headers(req, res): @@ -422,7 +422,7 @@ class RequestExtensionTest(testtools.TestCase): return _setup_extensions_test_app(manager) -class ExtensionManagerTest(testtools.TestCase): +class ExtensionManagerTest(base.BaseTestCase): def test_invalid_extensions_are_not_registered(self): @@ -442,7 +442,7 @@ class ExtensionManagerTest(testtools.TestCase): self.assertFalse('invalid_extension' in ext_mgr.extensions) -class PluginAwareExtensionManagerTest(testtools.TestCase): +class PluginAwareExtensionManagerTest(base.BaseTestCase): def test_unsupported_extensions_are_not_loaded(self): stub_plugin = ext_stubs.StubPlugin(supported_extensions=["e1", "e3"]) diff --git a/quantum/tests/unit/test_iptables_firewall.py b/quantum/tests/unit/test_iptables_firewall.py index 73ad85e3d..cbf61c543 100644 --- a/quantum/tests/unit/test_iptables_firewall.py +++ b/quantum/tests/unit/test_iptables_firewall.py @@ -17,10 +17,10 @@ import mock from mock import call -import testtools from quantum.agent.linux.iptables_firewall import IptablesFirewallDriver from quantum.tests.unit import test_api_v2 +from quantum.tests import base _uuid = test_api_v2._uuid FAKE_PREFIX = {'IPv4': '10.0.0.0/24', @@ -29,7 +29,7 @@ FAKE_IP = {'IPv4': '10.0.0.1', 'IPv6': 'fe80::1'} -class IptablesFirewallTestCase(testtools.TestCase): +class IptablesFirewallTestCase(base.BaseTestCase): def setUp(self): super(IptablesFirewallTestCase, self).setUp() self.utils_exec_p = mock.patch( diff --git a/quantum/tests/unit/test_iptables_manager.py b/quantum/tests/unit/test_iptables_manager.py index e8efa920f..1ce5af0fd 100644 --- a/quantum/tests/unit/test_iptables_manager.py +++ b/quantum/tests/unit/test_iptables_manager.py @@ -21,12 +21,12 @@ import inspect import os import mox -import testtools from quantum.agent.linux import iptables_manager +from quantum.tests import base -class IptablesManagerStateFulTestCase(testtools.TestCase): +class IptablesManagerStateFulTestCase(base.BaseTestCase): def setUp(self): super(IptablesManagerStateFulTestCase, self).setUp() @@ -294,7 +294,7 @@ class IptablesManagerStateFulTestCase(testtools.TestCase): self.mox.VerifyAll() -class IptablesManagerStateLessTestCase(testtools.TestCase): +class IptablesManagerStateLessTestCase(base.BaseTestCase): def setUp(self): super(IptablesManagerStateLessTestCase, self).setUp() diff --git a/quantum/tests/unit/test_l3_agent.py b/quantum/tests/unit/test_l3_agent.py index 576b10f61..80db7f4fe 100644 --- a/quantum/tests/unit/test_l3_agent.py +++ b/quantum/tests/unit/test_l3_agent.py @@ -19,7 +19,6 @@ import copy import mock from oslo.config import cfg -import testtools from quantum.agent.common import config as agent_config from quantum.agent import l3_agent @@ -27,13 +26,14 @@ from quantum.agent.linux import interface from quantum.common import config as base_config from quantum.common import constants as l3_constants from quantum.openstack.common import uuidutils +from quantum.tests import base _uuid = uuidutils.generate_uuid HOSTNAME = 'myhost' -class TestBasicRouterOperations(testtools.TestCase): +class TestBasicRouterOperations(base.BaseTestCase): def setUp(self): super(TestBasicRouterOperations, self).setUp() diff --git a/quantum/tests/unit/test_l3_plugin.py b/quantum/tests/unit/test_l3_plugin.py index 509ba8fc5..64463141b 100644 --- a/quantum/tests/unit/test_l3_plugin.py +++ b/quantum/tests/unit/test_l3_plugin.py @@ -45,6 +45,7 @@ from quantum.openstack.common import log as logging from quantum.openstack.common.notifier import api as notifier_api from quantum.openstack.common.notifier import test_notifier from quantum.openstack.common import uuidutils +from quantum.tests import base from quantum.tests.unit import test_api_v2 from quantum.tests.unit import test_db_plugin from quantum.tests.unit import test_extensions diff --git a/quantum/tests/unit/test_linux_daemon.py b/quantum/tests/unit/test_linux_daemon.py index 46afea1f7..57aeaac6c 100644 --- a/quantum/tests/unit/test_linux_daemon.py +++ b/quantum/tests/unit/test_linux_daemon.py @@ -22,11 +22,12 @@ import mock import testtools from quantum.agent.linux import daemon +from quantum.tests import base FAKE_FD = 8 -class TestPidfile(testtools.TestCase): +class TestPidfile(base.BaseTestCase): def setUp(self): super(TestPidfile, self).setUp() self.os_p = mock.patch.object(daemon, 'os') @@ -94,7 +95,7 @@ class TestPidfile(testtools.TestCase): ['cat', '/proc/34/cmdline'], 'sudo') -class TestDaemon(testtools.TestCase): +class TestDaemon(base.BaseTestCase): def setUp(self): super(TestDaemon, self).setUp() self.os_p = mock.patch.object(daemon, 'os') diff --git a/quantum/tests/unit/test_linux_dhcp.py b/quantum/tests/unit/test_linux_dhcp.py index ee9557cff..a3ab7fbce 100644 --- a/quantum/tests/unit/test_linux_dhcp.py +++ b/quantum/tests/unit/test_linux_dhcp.py @@ -20,11 +20,11 @@ import socket import mock from oslo.config import cfg -import testtools from quantum.agent.common import config from quantum.agent.linux import dhcp from quantum.openstack.common import jsonutils +from quantum.tests import base class FakeIPAllocation: @@ -134,7 +134,7 @@ class FakeV4NoGatewayNetwork: ports = [FakePort1()] -class TestDhcpBase(testtools.TestCase): +class TestDhcpBase(base.BaseTestCase): def test_base_abc_error(self): self.assertRaises(TypeError, dhcp.DhcpBase, None) @@ -179,7 +179,7 @@ class LocalChild(dhcp.DhcpLocalProcess): self.called.append('spawn') -class TestBase(testtools.TestCase): +class TestBase(base.BaseTestCase): def setUp(self): super(TestBase, self).setUp() root = os.path.dirname(os.path.dirname(__file__)) diff --git a/quantum/tests/unit/test_linux_external_process.py b/quantum/tests/unit/test_linux_external_process.py index 03dab45d2..3a96f414d 100644 --- a/quantum/tests/unit/test_linux_external_process.py +++ b/quantum/tests/unit/test_linux_external_process.py @@ -17,12 +17,12 @@ # @author: Mark McClain, DreamHost import mock -import testtools from quantum.agent.linux import external_process as ep +from quantum.tests import base -class TestProcessManager(testtools.TestCase): +class TestProcessManager(base.BaseTestCase): def setUp(self): super(TestProcessManager, self).setUp() self.execute_p = mock.patch('quantum.agent.linux.utils.execute') diff --git a/quantum/tests/unit/test_linux_interface.py b/quantum/tests/unit/test_linux_interface.py index 9e3ed5262..90d104f4e 100644 --- a/quantum/tests/unit/test_linux_interface.py +++ b/quantum/tests/unit/test_linux_interface.py @@ -17,7 +17,6 @@ import mock from oslo.config import cfg -import testtools from quantum.agent.common import config from quantum.agent.dhcp_agent import DeviceManager @@ -25,6 +24,7 @@ from quantum.agent.linux import interface from quantum.agent.linux import ip_lib from quantum.agent.linux import utils from quantum.extensions.flavor import (FLAVOR_NETWORK) +from quantum.tests import base class BaseChild(interface.LinuxInterfaceDriver): @@ -57,7 +57,7 @@ class FakePort: network_id = network.id -class TestBase(testtools.TestCase): +class TestBase(base.BaseTestCase): def setUp(self): super(TestBase, self).setUp() root_helper_opt = [ diff --git a/quantum/tests/unit/test_linux_ip_lib.py b/quantum/tests/unit/test_linux_ip_lib.py index cc54ff23c..0e8832c69 100644 --- a/quantum/tests/unit/test_linux_ip_lib.py +++ b/quantum/tests/unit/test_linux_ip_lib.py @@ -16,10 +16,10 @@ # under the License. import mock -import testtools from quantum.agent.linux import ip_lib from quantum.common import exceptions +from quantum.tests import base NETNS_SAMPLE = [ '12345678-1234-5678-abcd-1234567890ab', @@ -97,7 +97,7 @@ SUBNET_SAMPLE2 = ("10.0.0.0/24 dev tap1d7888a7-10 scope link src 10.0.0.2\n" "10.0.0.0/24 dev qr-23380d11-d2 scope link src 10.0.0.1") -class TestSubProcessBase(testtools.TestCase): +class TestSubProcessBase(base.BaseTestCase): def setUp(self): super(TestSubProcessBase, self).setUp() self.execute_p = mock.patch('quantum.agent.linux.utils.execute') @@ -149,7 +149,7 @@ class TestSubProcessBase(testtools.TestCase): [], 'link', ('list',)) -class TestIpWrapper(testtools.TestCase): +class TestIpWrapper(base.BaseTestCase): def setUp(self): super(TestIpWrapper, self).setUp() self.execute_p = mock.patch.object(ip_lib.IPWrapper, '_execute') @@ -305,7 +305,7 @@ class TestIpWrapper(testtools.TestCase): self.assertEqual(dev.mock_calls, []) -class TestIPDevice(testtools.TestCase): +class TestIPDevice(base.BaseTestCase): def test_eq_same_name(self): dev1 = ip_lib.IPDevice('tap0') dev2 = ip_lib.IPDevice('tap0') @@ -334,7 +334,7 @@ class TestIPDevice(testtools.TestCase): self.assertEqual(str(ip_lib.IPDevice('tap0')), 'tap0') -class TestIPCommandBase(testtools.TestCase): +class TestIPCommandBase(base.BaseTestCase): def setUp(self): super(TestIPCommandBase, self).setUp() self.ip = mock.Mock() @@ -362,7 +362,7 @@ class TestIPCommandBase(testtools.TestCase): [mock.call._as_root('o', 'foo', ('link', ), False)]) -class TestIPDeviceCommandBase(testtools.TestCase): +class TestIPDeviceCommandBase(base.BaseTestCase): def setUp(self): super(TestIPDeviceCommandBase, self).setUp() self.ip_dev = mock.Mock() @@ -376,7 +376,7 @@ class TestIPDeviceCommandBase(testtools.TestCase): self.assertEqual(self.ip_cmd.name, 'eth0') -class TestIPCmdBase(testtools.TestCase): +class TestIPCmdBase(base.BaseTestCase): def setUp(self): super(TestIPCmdBase, self).setUp() self.parent = mock.Mock() @@ -654,7 +654,7 @@ class TestIpNetnsCommand(TestIPCmdBase): root_helper='sudo', check_exit_code=True) -class TestDeviceExists(testtools.TestCase): +class TestDeviceExists(base.BaseTestCase): def test_device_exists(self): with mock.patch.object(ip_lib.IPDevice, '_execute') as _execute: _execute.return_value = LINK_SAMPLE[1] diff --git a/quantum/tests/unit/test_loadbalancer_plugin.py b/quantum/tests/unit/test_loadbalancer_plugin.py index 15418d7c0..109043d74 100644 --- a/quantum/tests/unit/test_loadbalancer_plugin.py +++ b/quantum/tests/unit/test_loadbalancer_plugin.py @@ -18,7 +18,6 @@ import copy import mock from oslo.config import cfg -import testtools from webob import exc import webtest @@ -29,6 +28,7 @@ from quantum.extensions import loadbalancer from quantum import manager from quantum.openstack.common import uuidutils from quantum.plugins.common import constants +from quantum.tests import base from quantum.tests.unit import test_api_v2 from quantum.tests.unit import test_extensions from quantum.tests.unit import testlib_api diff --git a/quantum/tests/unit/test_metadata_agent.py b/quantum/tests/unit/test_metadata_agent.py index e41cd3d02..ce42edd7a 100644 --- a/quantum/tests/unit/test_metadata_agent.py +++ b/quantum/tests/unit/test_metadata_agent.py @@ -23,6 +23,7 @@ import testtools import webob from quantum.agent.metadata import agent +from quantum.tests import base class FakeConf(object): @@ -37,7 +38,7 @@ class FakeConf(object): metadata_proxy_shared_secret = 'secret' -class TestMetadataProxyHandler(testtools.TestCase): +class TestMetadataProxyHandler(base.BaseTestCase): def setUp(self): super(TestMetadataProxyHandler, self).setUp() self.qclient_p = mock.patch('quantumclient.v2_0.client.Client') @@ -225,7 +226,7 @@ class TestMetadataProxyHandler(testtools.TestCase): ) -class TestUnixDomainHttpProtocol(testtools.TestCase): +class TestUnixDomainHttpProtocol(base.BaseTestCase): def test_init_empty_client(self): u = agent.UnixDomainHttpProtocol(mock.Mock(), '', mock.Mock()) self.assertEqual(u.client_address, ('', 0)) @@ -235,7 +236,7 @@ class TestUnixDomainHttpProtocol(testtools.TestCase): self.assertEqual(u.client_address, 'foo') -class TestUnixDomainWSGIServer(testtools.TestCase): +class TestUnixDomainWSGIServer(base.BaseTestCase): def setUp(self): super(TestUnixDomainWSGIServer, self).setUp() self.eventlet_p = mock.patch.object(agent, 'eventlet') @@ -274,7 +275,7 @@ class TestUnixDomainWSGIServer(testtools.TestCase): self.assertTrue(len(logging.mock_calls)) -class TestUnixDomainMetadataProxy(testtools.TestCase): +class TestUnixDomainMetadataProxy(base.BaseTestCase): def setUp(self): super(TestUnixDomainMetadataProxy, self).setUp() self.cfg_p = mock.patch.object(agent, 'cfg') diff --git a/quantum/tests/unit/test_metadata_namespace_proxy.py b/quantum/tests/unit/test_metadata_namespace_proxy.py index e30dd306b..6de98fe92 100644 --- a/quantum/tests/unit/test_metadata_namespace_proxy.py +++ b/quantum/tests/unit/test_metadata_namespace_proxy.py @@ -23,6 +23,7 @@ import testtools import webob from quantum.agent.metadata import namespace_proxy as ns_proxy +from quantum.tests import base class FakeConf(object): @@ -37,7 +38,7 @@ class FakeConf(object): metadata_proxy_shared_secret = 'secret' -class TestUnixDomainHttpConnection(testtools.TestCase): +class TestUnixDomainHttpConnection(base.BaseTestCase): def test_connect(self): with mock.patch.object(ns_proxy, 'cfg') as cfg: cfg.CONF.metadata_proxy_socket = '/the/path' @@ -55,7 +56,7 @@ class TestUnixDomainHttpConnection(testtools.TestCase): self.assertEqual(conn.timeout, 3) -class TestNetworkMetadataProxyHandler(testtools.TestCase): +class TestNetworkMetadataProxyHandler(base.BaseTestCase): def setUp(self): super(TestNetworkMetadataProxyHandler, self).setUp() self.log_p = mock.patch.object(ns_proxy, 'LOG') @@ -231,7 +232,7 @@ class TestNetworkMetadataProxyHandler(testtools.TestCase): ) -class TestProxyDaemon(testtools.TestCase): +class TestProxyDaemon(base.BaseTestCase): def test_init(self): with mock.patch('quantum.agent.linux.daemon.Pidfile') as pf: pd = ns_proxy.ProxyDaemon('pidfile', 9697, 'net_id', 'router_id') diff --git a/quantum/tests/unit/test_policy.py b/quantum/tests/unit/test_policy.py index 2539d84d4..62421312f 100644 --- a/quantum/tests/unit/test_policy.py +++ b/quantum/tests/unit/test_policy.py @@ -23,7 +23,6 @@ import urllib2 import fixtures import mock -import testtools import quantum from quantum.common import exceptions @@ -31,9 +30,10 @@ from quantum import context from quantum.openstack.common import importutils from quantum.openstack.common import policy as common_policy from quantum import policy +from quantum.tests import base -class PolicyFileTestCase(testtools.TestCase): +class PolicyFileTestCase(base.BaseTestCase): def setUp(self): super(PolicyFileTestCase, self).setUp() policy.reset() @@ -66,7 +66,7 @@ class PolicyFileTestCase(testtools.TestCase): self.target) -class PolicyTestCase(testtools.TestCase): +class PolicyTestCase(base.BaseTestCase): def setUp(self): super(PolicyTestCase, self).setUp() policy.reset() @@ -160,7 +160,7 @@ class PolicyTestCase(testtools.TestCase): policy.enforce(admin_context, uppercase_action, self.target) -class DefaultPolicyTestCase(testtools.TestCase): +class DefaultPolicyTestCase(base.BaseTestCase): def setUp(self): super(DefaultPolicyTestCase, self).setUp() @@ -196,7 +196,7 @@ class DefaultPolicyTestCase(testtools.TestCase): self.context, "example:noexist", {}) -class QuantumPolicyTestCase(testtools.TestCase): +class QuantumPolicyTestCase(base.BaseTestCase): def setUp(self): super(QuantumPolicyTestCase, self).setUp() diff --git a/quantum/tests/unit/test_quantum_context.py b/quantum/tests/unit/test_quantum_context.py index 169ca3633..c2bc58564 100644 --- a/quantum/tests/unit/test_quantum_context.py +++ b/quantum/tests/unit/test_quantum_context.py @@ -16,12 +16,12 @@ # under the License. import mock -import testtools from quantum import context +from quantum.tests import base -class TestQuantumContext(testtools.TestCase): +class TestQuantumContext(base.BaseTestCase): def setUp(self): super(TestQuantumContext, self).setUp() diff --git a/quantum/tests/unit/test_quantum_manager.py b/quantum/tests/unit/test_quantum_manager.py index 0e987f3fd..f7f60bcda 100644 --- a/quantum/tests/unit/test_quantum_manager.py +++ b/quantum/tests/unit/test_quantum_manager.py @@ -19,7 +19,6 @@ import os import types import fixtures -import testtools from oslo.config import cfg @@ -28,6 +27,7 @@ from quantum.common.test_lib import test_config from quantum.manager import QuantumManager from quantum.openstack.common import log as logging from quantum.plugins.common import constants +from quantum.tests import base from quantum.tests.unit import dummy_plugin @@ -41,7 +41,7 @@ def etcdir(*p): return os.path.join(ETCDIR, *p) -class QuantumManagerTestCase(testtools.TestCase): +class QuantumManagerTestCase(base.BaseTestCase): def setUp(self): super(QuantumManagerTestCase, self).setUp() diff --git a/quantum/tests/unit/test_quota_per_tenant_ext.py b/quantum/tests/unit/test_quota_per_tenant_ext.py index 838a1fd93..5b1285d66 100644 --- a/quantum/tests/unit/test_quota_per_tenant_ext.py +++ b/quantum/tests/unit/test_quota_per_tenant_ext.py @@ -12,6 +12,7 @@ from quantum.db import api as db from quantum import manager from quantum.plugins.linuxbridge.db import l2network_db_v2 from quantum import quota +from quantum.tests import base from quantum.tests.unit import test_api_v2 from quantum.tests.unit import test_extensions from quantum.tests.unit import testlib_api diff --git a/quantum/tests/unit/test_rootwrap.py b/quantum/tests/unit/test_rootwrap.py index ec667bfb1..47de4f25f 100644 --- a/quantum/tests/unit/test_rootwrap.py +++ b/quantum/tests/unit/test_rootwrap.py @@ -17,14 +17,14 @@ import os import mock -import testtools from quantum.common import utils from quantum.rootwrap import filters from quantum.rootwrap import wrapper +from quantum.tests import base -class RootwrapTestCase(testtools.TestCase): +class RootwrapTestCase(base.BaseTestCase): def setUp(self): super(RootwrapTestCase, self).setUp() diff --git a/quantum/tests/unit/test_routerserviceinsertion.py b/quantum/tests/unit/test_routerserviceinsertion.py index 21f016db4..d99930195 100644 --- a/quantum/tests/unit/test_routerserviceinsertion.py +++ b/quantum/tests/unit/test_routerserviceinsertion.py @@ -34,6 +34,7 @@ from quantum.db import servicetype_db as st_db from quantum.extensions import routedserviceinsertion as rsi from quantum.extensions import routerservicetype as rst from quantum.plugins.common import constants +from quantum.tests import base from quantum.tests.unit import test_api_v2 from quantum.tests.unit import testlib_api from quantum import wsgi @@ -154,7 +155,7 @@ class RouterServiceInsertionTestPlugin( pass -class RouterServiceInsertionTestCase(testtools.TestCase): +class RouterServiceInsertionTestCase(base.BaseTestCase): def setUp(self): super(RouterServiceInsertionTestCase, self).setUp() plugin = ( diff --git a/quantum/tests/unit/test_security_groups_rpc.py b/quantum/tests/unit/test_security_groups_rpc.py index 1cb0b22ab..f51003143 100644 --- a/quantum/tests/unit/test_security_groups_rpc.py +++ b/quantum/tests/unit/test_security_groups_rpc.py @@ -21,7 +21,6 @@ import mock from mock import call import mox from oslo.config import cfg -import testtools from quantum.agent import firewall as firewall_base from quantum.agent.linux import iptables_manager @@ -31,6 +30,7 @@ from quantum import context from quantum.db import securitygroups_rpc_base as sg_db_rpc from quantum.extensions import securitygroup as ext_sg from quantum.openstack.common.rpc import proxy +from quantum.tests import base from quantum.tests.unit import test_extension_security_group as test_sg from quantum.tests.unit import test_iptables_firewall as test_fw @@ -370,7 +370,7 @@ class SGServerRpcCallBackMixinTestCaseXML(SGServerRpcCallBackMixinTestCase): fmt = 'xml' -class SGAgentRpcCallBackMixinTestCase(testtools.TestCase): +class SGAgentRpcCallBackMixinTestCase(base.BaseTestCase): def setUp(self): super(SGAgentRpcCallBackMixinTestCase, self).setUp() self.rpc = sg_rpc.SecurityGroupAgentRpcCallbackMixin() @@ -394,7 +394,7 @@ class SGAgentRpcCallBackMixinTestCase(testtools.TestCase): [call.security_groups_provider_updated()]) -class SecurityGroupAgentRpcTestCase(testtools.TestCase): +class SecurityGroupAgentRpcTestCase(base.BaseTestCase): def setUp(self): super(SecurityGroupAgentRpcTestCase, self).setUp() self.agent = sg_rpc.SecurityGroupAgentRpcMixin() @@ -479,7 +479,7 @@ class FakeSGRpcApi(agent_rpc.PluginApi, pass -class SecurityGroupServerRpcApiTestCase(testtools.TestCase): +class SecurityGroupServerRpcApiTestCase(base.BaseTestCase): def setUp(self): super(SecurityGroupServerRpcApiTestCase, self).setUp() self.rpc = FakeSGRpcApi('fake_topic') @@ -502,7 +502,7 @@ class FakeSGNotifierAPI(proxy.RpcProxy, pass -class SecurityGroupAgentRpcApiTestCase(testtools.TestCase): +class SecurityGroupAgentRpcApiTestCase(base.BaseTestCase): def setUp(self): super(SecurityGroupAgentRpcApiTestCase, self).setUp() self.notifier = FakeSGNotifierAPI(topic='fake', @@ -945,7 +945,7 @@ IPTABLES_FILTER_V6_EMPTY = """:%(bn)s-(%(chains)s) - [0:0] FIREWALL_BASE_PACKAGE = 'quantum.agent.linux.iptables_firewall.' -class TestSecurityGroupAgentWithIptables(testtools.TestCase): +class TestSecurityGroupAgentWithIptables(base.BaseTestCase): FIREWALL_DRIVER = FIREWALL_BASE_PACKAGE + 'IptablesFirewallDriver' PHYSDEV_INGRESS = 'physdev-out' PHYSDEV_EGRESS = 'physdev-in' diff --git a/quantum/tests/unit/test_servicetype.py b/quantum/tests/unit/test_servicetype.py index bded46295..c9f3aeeb9 100644 --- a/quantum/tests/unit/test_servicetype.py +++ b/quantum/tests/unit/test_servicetype.py @@ -22,7 +22,6 @@ import logging import mock from oslo.config import cfg -import testtools import webob.exc as webexc import webtest @@ -34,6 +33,7 @@ from quantum.db import servicetype_db from quantum.extensions import servicetype from quantum import manager from quantum.plugins.common import constants +from quantum.tests import base from quantum.tests.unit import dummy_plugin as dp from quantum.tests.unit import test_api_v2 from quantum.tests.unit import test_db_plugin diff --git a/quantum/tests/unit/test_wsgi.py b/quantum/tests/unit/test_wsgi.py index 0c09c1cd4..3b1999e39 100644 --- a/quantum/tests/unit/test_wsgi.py +++ b/quantum/tests/unit/test_wsgi.py @@ -15,18 +15,17 @@ # License for the specific language governing permissions and limitations # under the License. -import socket - import mock -import testtools +import socket from quantum.api.v2 import attributes from quantum.common import constants from quantum.common import exceptions as exception +from quantum.tests import base from quantum import wsgi -class TestWSGIServer(testtools.TestCase): +class TestWSGIServer(base.BaseTestCase): """WSGI server tests.""" def test_start_random_port(self): @@ -82,7 +81,7 @@ class TestWSGIServer(testtools.TestCase): ]) -class SerializerTest(testtools.TestCase): +class SerializerTest(base.BaseTestCase): def test_serialize_unknown_content_type(self): """ Test serialize verifies that exception InvalidContentType is raised @@ -108,7 +107,7 @@ class SerializerTest(testtools.TestCase): serializer.get_deserialize_handler, content_type) -class RequestDeserializerTest(testtools.TestCase): +class RequestDeserializerTest(base.BaseTestCase): def test_get_body_deserializer_unknown_content_type(self): """ Test get body deserializer verifies @@ -121,7 +120,7 @@ class RequestDeserializerTest(testtools.TestCase): deserializer.get_body_deserializer, content_type) -class ResponseSerializerTest(testtools.TestCase): +class ResponseSerializerTest(base.BaseTestCase): def setUp(self): super(ResponseSerializerTest, self).setUp() @@ -164,7 +163,7 @@ class ResponseSerializerTest(testtools.TestCase): self.serializer.get_body_serializer, 'application/unknown') -class XMLDeserializerTest(testtools.TestCase): +class XMLDeserializerTest(base.BaseTestCase): def test_default_raise_Maiformed_Exception(self): """ Test verifies that exception MalformedRequestBody is raised @@ -176,7 +175,7 @@ class XMLDeserializerTest(testtools.TestCase): exception.MalformedRequestBody, deserializer.default, data_string) -class JSONDeserializerTest(testtools.TestCase): +class JSONDeserializerTest(base.BaseTestCase): def test_default_raise_Maiformed_Exception(self): """ Test verifies JsonDeserializer.default @@ -189,7 +188,7 @@ class JSONDeserializerTest(testtools.TestCase): exception.MalformedRequestBody, deserializer.default, data_string) -class ResourceTest(testtools.TestCase): +class ResourceTest(base.BaseTestCase): def test_dispatch_unknown_controller_action(self): class Controller(object): def index(self, request, pants=None): @@ -262,7 +261,7 @@ class ResourceTest(testtools.TestCase): self.assertEqual(400, result.status_int) -class XMLDictSerializerTest(testtools.TestCase): +class XMLDictSerializerTest(base.BaseTestCase): def test_xml(self): NETWORK = {'network': {'test': None, 'tenant_id': 'test-tenant', diff --git a/quantum/tests/unit/testlib_api.py b/quantum/tests/unit/testlib_api.py index 67e428c43..3e8f35361 100644 --- a/quantum/tests/unit/testlib_api.py +++ b/quantum/tests/unit/testlib_api.py @@ -13,9 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. -import testtools - from quantum.api.v2 import attributes +from quantum.tests import base from quantum import wsgi @@ -35,7 +34,7 @@ def create_request(path, body, content_type, method='GET', return req -class WebTestCase(testtools.TestCase): +class WebTestCase(base.BaseTestCase): fmt = 'json' def setUp(self):