Update modules to turn on dangling mock detection
Make all test suites in the api, configuration, instance, network, mysql, router, quota, db, and datastore modules extend 'trove_testtools.TestCase' to enable dangling mock detection. Co-Authored-By: Peter Stachowski <peter@tesora.com> Change-Id: If9326709d76972d66fb40b4984bbb5214b0c5189 Partial-Bug: 1448273
This commit is contained in:
parent
b1cf32ba5b
commit
8fa76ceff8
|
@ -16,7 +16,6 @@
|
|||
import mock
|
||||
import os
|
||||
import pkg_resources
|
||||
import testtools
|
||||
import trove
|
||||
|
||||
import ConfigParser as config_parser
|
||||
|
@ -26,6 +25,7 @@ from trove.extensions.routes.account import Account
|
|||
from trove.extensions.routes.mgmt import Mgmt
|
||||
from trove.extensions.routes.mysql import Mysql
|
||||
from trove.extensions.routes.security_group import Security_group
|
||||
from trove.tests.unittests import trove_testtools
|
||||
|
||||
DEFAULT_EXTENSION_MAP = {
|
||||
'Account': [Account, extensions.ExtensionDescriptor],
|
||||
|
@ -63,7 +63,7 @@ class InvalidExtension(object):
|
|||
return []
|
||||
|
||||
|
||||
class TestExtensionLoading(testtools.TestCase):
|
||||
class TestExtensionLoading(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(TestExtensionLoading, self).setUp()
|
||||
|
||||
|
|
|
@ -19,7 +19,6 @@ Tests dealing with HTTP rate-limiting.
|
|||
|
||||
import httplib
|
||||
from trove.quota.models import Quota
|
||||
import testtools
|
||||
import webob
|
||||
|
||||
from mock import Mock, MagicMock
|
||||
|
@ -31,6 +30,7 @@ from trove.limits import views
|
|||
from trove.limits.service import LimitsController
|
||||
from oslo.serialization import jsonutils
|
||||
from trove.quota.quota import QUOTAS
|
||||
from trove.tests.unittests import trove_testtools
|
||||
|
||||
TEST_LIMITS = [
|
||||
Limit("GET", "/delayed", "^/delayed", 1, limits.PER_MINUTE),
|
||||
|
@ -40,7 +40,7 @@ TEST_LIMITS = [
|
|||
]
|
||||
|
||||
|
||||
class BaseLimitTestSuite(testtools.TestCase):
|
||||
class BaseLimitTestSuite(trove_testtools.TestCase):
|
||||
"""Base test suite which provides relevant stubs and time abstraction."""
|
||||
|
||||
def setUp(self):
|
||||
|
@ -683,7 +683,7 @@ class WsgiLimiterProxyTest(BaseLimitTestSuite):
|
|||
super(WsgiLimiterProxyTest, self).tearDown()
|
||||
|
||||
|
||||
class LimitsViewTest(testtools.TestCase):
|
||||
class LimitsViewTest(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(LimitsViewTest, self).setUp()
|
||||
|
||||
|
@ -735,7 +735,7 @@ class LimitsViewTest(testtools.TestCase):
|
|||
self.assertEqual(expected, data)
|
||||
|
||||
|
||||
class LimitsViewsTest(testtools.TestCase):
|
||||
class LimitsViewsTest(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(LimitsViewsTest, self).setUp()
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
# under the License.
|
||||
|
||||
from mock import Mock
|
||||
from trove.tests.unittests import trove_testtools
|
||||
from trove.versions import BaseVersion
|
||||
from trove.versions import Version
|
||||
from trove.versions import VersionDataView
|
||||
|
@ -22,12 +23,11 @@ from trove.versions import VersionsController
|
|||
from trove.versions import VersionsDataView
|
||||
from trove.versions import VERSIONS
|
||||
|
||||
import testtools
|
||||
|
||||
BASE_URL = 'http://localhost'
|
||||
|
||||
|
||||
class VersionsControllerTest(testtools.TestCase):
|
||||
class VersionsControllerTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionsControllerTest, self).setUp()
|
||||
|
@ -79,7 +79,7 @@ class VersionsControllerTest(testtools.TestCase):
|
|||
self.assertEqual('v1.0', version['id'], "Version id was not 'v1.0'")
|
||||
|
||||
|
||||
class BaseVersionTestCase(testtools.TestCase):
|
||||
class BaseVersionTestCase(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(BaseVersionTestCase, self).setUp()
|
||||
|
@ -113,7 +113,7 @@ class BaseVersionTestCase(testtools.TestCase):
|
|||
"Base Version url is incorrect")
|
||||
|
||||
|
||||
class VersionTestCase(testtools.TestCase):
|
||||
class VersionTestCase(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionTestCase, self).setUp()
|
||||
|
@ -140,7 +140,7 @@ class VersionTestCase(testtools.TestCase):
|
|||
'Base url value was incorrect')
|
||||
|
||||
|
||||
class VersionDataViewTestCase(testtools.TestCase):
|
||||
class VersionDataViewTestCase(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionDataViewTestCase, self).setUp()
|
||||
|
@ -177,7 +177,7 @@ class VersionDataViewTestCase(testtools.TestCase):
|
|||
"Data status was not 'v1.0'")
|
||||
|
||||
|
||||
class VersionsDataViewTestCase(testtools.TestCase):
|
||||
class VersionsDataViewTestCase(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionsDataViewTestCase, self).setUp()
|
||||
|
@ -220,7 +220,7 @@ class VersionsDataViewTestCase(testtools.TestCase):
|
|||
"Version ids are not equal")
|
||||
|
||||
|
||||
class VersionAPITestCase(testtools.TestCase):
|
||||
class VersionAPITestCase(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionAPITestCase, self).setUp()
|
||||
|
|
|
@ -13,17 +13,16 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import jsonschema
|
||||
from testtools import TestCase
|
||||
from trove.configuration.service import ConfigurationsController
|
||||
from trove.extensions.mgmt.configuration import service
|
||||
from mock import MagicMock
|
||||
from trove.common import configurations
|
||||
from trove.common.exception import UnprocessableEntity
|
||||
from mock import MagicMock
|
||||
from trove.configuration.service import ConfigurationsController
|
||||
from trove.extensions.mgmt.configuration import service
|
||||
from trove.tests.unittests import trove_testtools
|
||||
import jsonschema
|
||||
|
||||
|
||||
class TestConfigurationParser(TestCase):
|
||||
class TestConfigurationParser(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(TestConfigurationParser, self).setUp()
|
||||
|
||||
|
@ -46,7 +45,7 @@ class TestConfigurationParser(TestCase):
|
|||
self.assertEqual('1', d_parsed["skip-external-locking"])
|
||||
|
||||
|
||||
class TestConfigurationController(TestCase):
|
||||
class TestConfigurationController(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(TestConfigurationController, self).setUp()
|
||||
self.controller = ConfigurationsController()
|
||||
|
@ -178,7 +177,7 @@ class TestConfigurationController(TestCase):
|
|||
None, config_rules)
|
||||
|
||||
|
||||
class TestConfigurationsParameterController(TestCase):
|
||||
class TestConfigurationsParameterController(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(TestConfigurationsParameterController, self).setUp()
|
||||
self.controller = service.ConfigurationsParameterController()
|
||||
|
|
|
@ -11,18 +11,17 @@
|
|||
# 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 testtools
|
||||
from trove.datastore import models as datastore_models
|
||||
from trove.datastore.models import Datastore
|
||||
from trove.datastore.models import Capability
|
||||
from trove.datastore.models import DatastoreVersion
|
||||
from trove.datastore.models import DBCapabilityOverrides
|
||||
from trove.datastore.models import Datastore
|
||||
from trove.datastore.models import DatastoreVersion
|
||||
from trove.tests.unittests import trove_testtools
|
||||
from trove.tests.unittests.util import util
|
||||
import uuid
|
||||
|
||||
|
||||
class TestDatastoreBase(testtools.TestCase):
|
||||
class TestDatastoreBase(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
# Basic setup and mock/fake structures for testing only
|
||||
|
|
|
@ -13,19 +13,17 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
from mock import call
|
||||
from mock import Mock
|
||||
from mock import call
|
||||
from mock import patch
|
||||
from sqlalchemy.engine import reflection
|
||||
from sqlalchemy.schema import Column
|
||||
import testtools
|
||||
|
||||
from trove.db.sqlalchemy.migrate_repo.schema import String
|
||||
from trove.db.sqlalchemy import utils as db_utils
|
||||
from trove.db.sqlalchemy.migrate_repo.schema import String
|
||||
from trove.tests.unittests import trove_testtools
|
||||
|
||||
|
||||
class TestDbMigrationUtils(testtools.TestCase):
|
||||
class TestDbMigrationUtils(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(TestDbMigrationUtils, self).setUp()
|
||||
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
import jsonschema
|
||||
from testtools import TestCase
|
||||
from mock import Mock
|
||||
from testtools.matchers import Is, Equals
|
||||
from testtools.testcase import skip
|
||||
from trove.common import apischema
|
||||
from trove.instance.service import InstanceController
|
||||
from mock import Mock
|
||||
from trove.tests.unittests import trove_testtools
|
||||
import jsonschema
|
||||
|
||||
|
||||
class TestInstanceController(TestCase):
|
||||
class TestInstanceController(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(TestInstanceController, self).setUp()
|
||||
self.controller = InstanceController()
|
||||
|
|
|
@ -11,30 +11,30 @@
|
|||
# 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 uuid
|
||||
from mock import Mock
|
||||
from testtools import TestCase
|
||||
from trove.backup import models as backup_models
|
||||
from trove.common import cfg
|
||||
from trove.common import exception
|
||||
from trove.backup import models as backup_models
|
||||
from trove.datastore import models as datastore_models
|
||||
from trove.common.instance import ServiceStatuses
|
||||
from trove.instance.models import filter_ips
|
||||
from trove.instance.models import InstanceServiceStatus
|
||||
from trove.datastore import models as datastore_models
|
||||
from trove.instance import models
|
||||
from trove.instance.models import DBInstance
|
||||
from trove.instance.models import Instance
|
||||
from trove.instance.models import InstanceServiceStatus
|
||||
from trove.instance.models import SimpleInstance
|
||||
from trove.instance import models
|
||||
from trove.instance.models import filter_ips
|
||||
from trove.instance.tasks import InstanceTasks
|
||||
from trove.taskmanager import api as task_api
|
||||
from trove.tests.fakes import nova
|
||||
from trove.tests.unittests import trove_testtools
|
||||
from trove.tests.unittests.util import util
|
||||
import uuid
|
||||
|
||||
CONF = cfg.CONF
|
||||
task_api.API.get_client = Mock()
|
||||
|
||||
|
||||
class SimpleInstanceTest(TestCase):
|
||||
class SimpleInstanceTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(SimpleInstanceTest, self).setUp()
|
||||
|
@ -102,7 +102,7 @@ class SimpleInstanceTest(TestCase):
|
|||
self.assertTrue('15.123.123.123' in ip)
|
||||
|
||||
|
||||
class CreateInstanceTest(TestCase):
|
||||
class CreateInstanceTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
util.init_db()
|
||||
|
@ -181,7 +181,7 @@ class CreateInstanceTest(TestCase):
|
|||
models.create_nova_client = self.orig_client
|
||||
task_api.API(self.context).create_instance = self.orig_api
|
||||
models.run_with_quotas = self.run_with_quotas
|
||||
backup_models.DBBackup.check_swift_object_exist = self.context
|
||||
backup_models.DBBackup.check_swift_object_exist = self.check
|
||||
self.backup.delete()
|
||||
self.db_info.delete()
|
||||
super(CreateInstanceTest, self).tearDown()
|
||||
|
@ -211,7 +211,7 @@ class CreateInstanceTest(TestCase):
|
|||
self.assertIsNotNone(instance)
|
||||
|
||||
|
||||
class TestReplication(TestCase):
|
||||
class TestReplication(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
util.init_db()
|
||||
|
|
|
@ -13,16 +13,14 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import uuid
|
||||
|
||||
from testtools import TestCase
|
||||
from trove.common.instance import ServiceStatuses
|
||||
from trove.datastore import models
|
||||
from trove.instance.models import InstanceStatus
|
||||
from trove.instance.models import InstanceServiceStatus
|
||||
from trove.instance.models import InstanceStatus
|
||||
from trove.instance.models import SimpleInstance
|
||||
from trove.tests.unittests import trove_testtools
|
||||
from trove.tests.unittests.util import util
|
||||
import uuid
|
||||
|
||||
|
||||
class FakeInstanceTask(object):
|
||||
|
@ -42,7 +40,7 @@ class FakeDBInstance(object):
|
|||
self.task_status = FakeInstanceTask()
|
||||
|
||||
|
||||
class BaseInstanceStatusTestCase(TestCase):
|
||||
class BaseInstanceStatusTestCase(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
util.init_db()
|
||||
|
|
|
@ -14,15 +14,15 @@
|
|||
# under the License.
|
||||
#
|
||||
from mock import Mock
|
||||
from testtools import TestCase
|
||||
from trove.common import cfg
|
||||
from trove.instance.views import InstanceView
|
||||
from trove.instance.views import InstanceDetailView
|
||||
from trove.instance.views import InstanceView
|
||||
from trove.tests.unittests import trove_testtools
|
||||
|
||||
CONF = cfg.CONF
|
||||
|
||||
|
||||
class InstanceViewsTest(TestCase):
|
||||
class InstanceViewsTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(InstanceViewsTest, self).setUp()
|
||||
|
@ -38,7 +38,7 @@ class InstanceViewsTest(TestCase):
|
|||
CONF.ip_regex = self.orig_ip_regex
|
||||
|
||||
|
||||
class InstanceDetailViewTest(TestCase):
|
||||
class InstanceDetailViewTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(InstanceDetailViewTest, self).setUp()
|
||||
|
|
|
@ -12,17 +12,17 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
from testtools import TestCase
|
||||
from testtools.matchers import Is
|
||||
from testtools.matchers import Equals
|
||||
from trove.common.exception import DatabaseInitialDatabaseDuplicateError
|
||||
from testtools.matchers import Is
|
||||
from trove.common.exception import DatabaseForUserNotInDatabaseListError
|
||||
from trove.common.exception import DatabaseInitialDatabaseDuplicateError
|
||||
from trove.common.exception import DatabaseInitialUserDuplicateError
|
||||
from trove.extensions.mysql.common import populate_validated_databases
|
||||
from trove.extensions.mysql.common import populate_users
|
||||
from trove.extensions.mysql.common import populate_validated_databases
|
||||
from trove.tests.unittests import trove_testtools
|
||||
|
||||
|
||||
class MySqlCommonTest(TestCase):
|
||||
class MySqlCommonTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(MySqlCommonTest, self).setUp()
|
||||
|
|
|
@ -13,16 +13,15 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
from testtools.matchers import Is
|
||||
from trove.extensions.mysql.service import SchemaController
|
||||
from trove.extensions.mysql.service import UserAccessController
|
||||
from trove.extensions.mysql.service import UserController
|
||||
from trove.tests.unittests import trove_testtools
|
||||
import jsonschema
|
||||
|
||||
from testtools import TestCase
|
||||
from testtools.matchers import Is
|
||||
from trove.extensions.mysql.service import UserController
|
||||
from trove.extensions.mysql.service import UserAccessController
|
||||
from trove.extensions.mysql.service import SchemaController
|
||||
|
||||
|
||||
class TestUserController(TestCase):
|
||||
class TestUserController(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(TestUserController, self).setUp()
|
||||
self.controller = UserController()
|
||||
|
@ -305,7 +304,7 @@ class TestUserController(TestCase):
|
|||
self.assertFalse(validator_none_host.is_valid(body_none_host))
|
||||
|
||||
|
||||
class TestUserAccessController(TestCase):
|
||||
class TestUserAccessController(trove_testtools.TestCase):
|
||||
def test_validate_update_db(self):
|
||||
body = {"databases": []}
|
||||
schema = (UserAccessController()).get_schema('update_all', body)
|
||||
|
@ -318,7 +317,7 @@ class TestUserAccessController(TestCase):
|
|||
#self.assertThat(errors[0].path.pop(), Equals("databases"))
|
||||
|
||||
|
||||
class TestSchemaController(TestCase):
|
||||
class TestSchemaController(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(TestSchemaController, self).setUp()
|
||||
self.controller = SchemaController()
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
# under the License.
|
||||
#
|
||||
|
||||
import testtools
|
||||
from mock import MagicMock
|
||||
from mock import Mock
|
||||
from neutronclient.common import exceptions as neutron_exceptions
|
||||
|
@ -25,9 +24,10 @@ from trove.common.models import NetworkRemoteModelBase
|
|||
from trove.network import neutron
|
||||
from trove.network.neutron import NeutronDriver as driver
|
||||
from trove.extensions.security_group.models import RemoteSecurityGroup
|
||||
from trove.tests.unittests import trove_testtools
|
||||
|
||||
|
||||
class NeutronDriverTest(testtools.TestCase):
|
||||
class NeutronDriverTest(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(NeutronDriverTest, self).setUp()
|
||||
self.context = Mock()
|
||||
|
@ -72,7 +72,7 @@ class NeutronDriverTest(testtools.TestCase):
|
|||
self.assertEqual(1, driver.delete_security_group.call_count)
|
||||
|
||||
|
||||
class NeutronDriverExceptionTest(testtools.TestCase):
|
||||
class NeutronDriverExceptionTest(trove_testtools.TestCase):
|
||||
def setUp(self):
|
||||
super(NeutronDriverExceptionTest, self).setUp()
|
||||
self.context = Mock()
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import testtools
|
||||
from mock import Mock, MagicMock, patch
|
||||
from testtools import skipIf
|
||||
from trove.quota.quota import DbQuotaDriver
|
||||
from trove.quota.models import Resource
|
||||
from trove.quota.models import Quota
|
||||
|
@ -25,6 +25,7 @@ from trove.common import exception
|
|||
from trove.common import cfg
|
||||
from trove.quota.quota import run_with_quotas
|
||||
from trove.quota.quota import QUOTAS
|
||||
from trove.tests.unittests import trove_testtools
|
||||
"""
|
||||
Unit tests for the classes and functions in DbQuotaDriver.py.
|
||||
"""
|
||||
|
@ -39,7 +40,7 @@ FAKE_TENANT1 = "123456"
|
|||
FAKE_TENANT2 = "654321"
|
||||
|
||||
|
||||
class Run_with_quotasTest(testtools.TestCase):
|
||||
class Run_with_quotasTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(Run_with_quotasTest, self).setUp()
|
||||
|
@ -78,7 +79,7 @@ class Run_with_quotasTest(testtools.TestCase):
|
|||
self.assertTrue(f.called)
|
||||
|
||||
|
||||
class QuotaControllerTest(testtools.TestCase):
|
||||
class QuotaControllerTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(QuotaControllerTest, self).setUp()
|
||||
|
@ -120,8 +121,7 @@ class QuotaControllerTest(testtools.TestCase):
|
|||
self.assertEqual(200, result.status)
|
||||
self.assertEqual(2, result._data['quotas']['instances'])
|
||||
|
||||
@testtools.skipIf(not CONF.trove_volume_support,
|
||||
'Volume support is not enabled')
|
||||
@skipIf(not CONF.trove_volume_support, 'Volume support is not enabled')
|
||||
def test_update_resource_volume(self):
|
||||
instance_quota = MagicMock(spec=Quota)
|
||||
volume_quota = MagicMock(spec=Quota)
|
||||
|
@ -142,7 +142,7 @@ class QuotaControllerTest(testtools.TestCase):
|
|||
self.assertEqual(10, result._data['quotas']['volumes'])
|
||||
|
||||
|
||||
class DbQuotaDriverTest(testtools.TestCase):
|
||||
class DbQuotaDriverTest(trove_testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
|
||||
|
|
|
@ -12,10 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import testtools
|
||||
|
||||
from trove.common.wsgi import Router, Fault
|
||||
|
||||
from trove.tests.unittests import trove_testtools
|
||||
from routes import Mapper
|
||||
|
||||
|
||||
|
@ -35,7 +33,7 @@ class FakeRequst(object):
|
|||
}
|
||||
|
||||
|
||||
class TestRouter(testtools.TestCase):
|
||||
class TestRouter(trove_testtools.TestCase):
|
||||
"""Test case for trove `Router` extensions."""
|
||||
|
||||
def setUp(self):
|
||||
|
|
Loading…
Reference in New Issue