Use the new oslotest library
There is a new support library extracted from oslo incubator: the patch starts using it and removes deprecated modules. Change-Id: I3839af20613ff6ab905dddb8fc4be65654c6e949
This commit is contained in:
parent
682c62717a
commit
070528e2ad
@ -1,85 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright 2013 Mirantis, Inc.
|
|
||||||
# Copyright 2013 OpenStack Foundation
|
|
||||||
# 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 fixtures
|
|
||||||
from oslo.config import cfg
|
|
||||||
import six
|
|
||||||
|
|
||||||
|
|
||||||
class Config(fixtures.Fixture):
|
|
||||||
"""Allows overriding configuration settings for the test.
|
|
||||||
|
|
||||||
`conf` will be reset on cleanup.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, conf=cfg.CONF):
|
|
||||||
self.conf = conf
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super(Config, self).setUp()
|
|
||||||
# NOTE(morganfainberg): unregister must be added to cleanup before
|
|
||||||
# reset is because cleanup works in reverse order of registered items,
|
|
||||||
# and a reset must occur before unregistering options can occur.
|
|
||||||
self.addCleanup(self._unregister_config_opts)
|
|
||||||
self.addCleanup(self.conf.reset)
|
|
||||||
self._registered_config_opts = {}
|
|
||||||
|
|
||||||
def config(self, **kw):
|
|
||||||
"""Override 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, otherwise the overrides
|
|
||||||
are applied to the ``default`` group.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
group = kw.pop('group', None)
|
|
||||||
for k, v in six.iteritems(kw):
|
|
||||||
self.conf.set_override(k, v, group)
|
|
||||||
|
|
||||||
def _unregister_config_opts(self):
|
|
||||||
for group in self._registered_config_opts:
|
|
||||||
self.conf.unregister_opts(self._registered_config_opts[group],
|
|
||||||
group=group)
|
|
||||||
|
|
||||||
def register_opt(self, opt, group=None):
|
|
||||||
"""Register a single option for the test run.
|
|
||||||
|
|
||||||
Options registered in this manner will automatically be unregistered
|
|
||||||
during cleanup.
|
|
||||||
|
|
||||||
If a `group` argument is supplied, it will register the new option
|
|
||||||
to that group, otherwise the option is registered to the ``default``
|
|
||||||
group.
|
|
||||||
"""
|
|
||||||
self.conf.register_opt(opt, group=group)
|
|
||||||
self._registered_config_opts.setdefault(group, set()).add(opt)
|
|
||||||
|
|
||||||
def register_opts(self, opts, group=None):
|
|
||||||
"""Register multiple options for the test run.
|
|
||||||
|
|
||||||
This works in the same manner as register_opt() but takes a list of
|
|
||||||
options as the first argument. All arguments will be registered to the
|
|
||||||
same group if the ``group`` argument is supplied, otherwise all options
|
|
||||||
will be registered to the ``default`` group.
|
|
||||||
"""
|
|
||||||
for opt in opts:
|
|
||||||
self.register_opt(opt, group=group)
|
|
@ -1,51 +0,0 @@
|
|||||||
# Copyright 2011 OpenStack Foundation.
|
|
||||||
# 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 fixtures
|
|
||||||
|
|
||||||
from heat.openstack.common import lockutils
|
|
||||||
|
|
||||||
|
|
||||||
class LockFixture(fixtures.Fixture):
|
|
||||||
"""External locking fixture.
|
|
||||||
|
|
||||||
This fixture is basically an alternative to the synchronized decorator with
|
|
||||||
the external flag so that tearDowns and addCleanups will be included in
|
|
||||||
the lock context for locking between tests. The fixture is recommended to
|
|
||||||
be the first line in a test method, like so::
|
|
||||||
|
|
||||||
def test_method(self):
|
|
||||||
self.useFixture(LockFixture)
|
|
||||||
...
|
|
||||||
|
|
||||||
or the first line in setUp if all the test methods in the class are
|
|
||||||
required to be serialized. Something like::
|
|
||||||
|
|
||||||
class TestCase(testtools.testcase):
|
|
||||||
def setUp(self):
|
|
||||||
self.useFixture(LockFixture)
|
|
||||||
super(TestCase, self).setUp()
|
|
||||||
...
|
|
||||||
|
|
||||||
This is because addCleanups are put on a LIFO queue that gets run after the
|
|
||||||
test method exits. (either by completing or raising an exception)
|
|
||||||
"""
|
|
||||||
def __init__(self, name, lock_file_prefix=None):
|
|
||||||
self.mgr = lockutils.lock(name, lock_file_prefix, True)
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super(LockFixture, self).setUp()
|
|
||||||
self.addCleanup(self.mgr.__exit__, None, None, None)
|
|
||||||
self.lock = self.mgr.__enter__()
|
|
@ -1,34 +0,0 @@
|
|||||||
# 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 fixtures
|
|
||||||
|
|
||||||
|
|
||||||
def get_logging_handle_error_fixture():
|
|
||||||
"""returns a fixture to make logging raise formatting exceptions.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
self.useFixture(logging.get_logging_handle_error_fixture())
|
|
||||||
"""
|
|
||||||
return fixtures.MonkeyPatch('logging.Handler.handleError',
|
|
||||||
_handleError)
|
|
||||||
|
|
||||||
|
|
||||||
def _handleError(self, record):
|
|
||||||
"""Monkey patch for logging.Handler.handleError.
|
|
||||||
|
|
||||||
The default handleError just logs the error to stderr but we want
|
|
||||||
the option of actually raising an exception.
|
|
||||||
"""
|
|
||||||
raise
|
|
@ -1,62 +0,0 @@
|
|||||||
# Copyright 2010 United States Government as represented by the
|
|
||||||
# Administrator of the National Aeronautics and Space Administration.
|
|
||||||
# Copyright 2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## DO NOT MODIFY THIS FILE
|
|
||||||
##
|
|
||||||
## This file is being graduated to the heattest library. Please make all
|
|
||||||
## changes there, and only backport critical fixes here. - dhellmann
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
import fixtures
|
|
||||||
import mock
|
|
||||||
|
|
||||||
|
|
||||||
class PatchObject(fixtures.Fixture):
|
|
||||||
"""Deal with code around mock."""
|
|
||||||
|
|
||||||
def __init__(self, obj, attr, new=mock.DEFAULT, **kwargs):
|
|
||||||
self.obj = obj
|
|
||||||
self.attr = attr
|
|
||||||
self.kwargs = kwargs
|
|
||||||
self.new = new
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super(PatchObject, self).setUp()
|
|
||||||
_p = mock.patch.object(self.obj, self.attr, self.new, **self.kwargs)
|
|
||||||
self.mock = _p.start()
|
|
||||||
self.addCleanup(_p.stop)
|
|
||||||
|
|
||||||
|
|
||||||
class Patch(fixtures.Fixture):
|
|
||||||
|
|
||||||
"""Deal with code around mock.patch."""
|
|
||||||
|
|
||||||
def __init__(self, obj, new=mock.DEFAULT, **kwargs):
|
|
||||||
self.obj = obj
|
|
||||||
self.kwargs = kwargs
|
|
||||||
self.new = new
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super(Patch, self).setUp()
|
|
||||||
_p = mock.patch(self.obj, self.new, **self.kwargs)
|
|
||||||
self.mock = _p.start()
|
|
||||||
self.addCleanup(_p.stop)
|
|
@ -1,43 +0,0 @@
|
|||||||
# Copyright 2010 United States Government as represented by the
|
|
||||||
# Administrator of the National Aeronautics and Space Administration.
|
|
||||||
# Copyright 2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## DO NOT MODIFY THIS FILE
|
|
||||||
##
|
|
||||||
## This file is being graduated to the heattest library. Please make all
|
|
||||||
## changes there, and only backport critical fixes here. - dhellmann
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
import fixtures
|
|
||||||
from six.moves import mox
|
|
||||||
|
|
||||||
|
|
||||||
class MoxStubout(fixtures.Fixture):
|
|
||||||
"""Deal with code around mox and stubout as a fixture."""
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super(MoxStubout, self).setUp()
|
|
||||||
# emulate some of the mox stuff, we can't use the metaclass
|
|
||||||
# because it screws with our generators
|
|
||||||
self.mox = mox.Mox()
|
|
||||||
self.stubs = self.mox.stubs
|
|
||||||
self.addCleanup(self.mox.UnsetStubs)
|
|
||||||
self.addCleanup(self.mox.VerifyAll)
|
|
@ -20,13 +20,13 @@ import time
|
|||||||
import fixtures
|
import fixtures
|
||||||
import mox
|
import mox
|
||||||
from oslo.config import cfg
|
from oslo.config import cfg
|
||||||
|
from oslotest import mockpatch
|
||||||
import testscenarios
|
import testscenarios
|
||||||
import testtools
|
import testtools
|
||||||
|
|
||||||
from heat.engine import environment
|
from heat.engine import environment
|
||||||
from heat.engine import resources
|
from heat.engine import resources
|
||||||
from heat.engine import scheduler
|
from heat.engine import scheduler
|
||||||
from heat.openstack.common.fixture import mockpatch
|
|
||||||
from heat.tests import utils
|
from heat.tests import utils
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ from eventlet import greenpool
|
|||||||
import mock
|
import mock
|
||||||
import mox
|
import mox
|
||||||
from oslo.config import cfg
|
from oslo.config import cfg
|
||||||
|
from oslotest import mockpatch
|
||||||
|
|
||||||
from heat.common import exception
|
from heat.common import exception
|
||||||
from heat.common import identifier
|
from heat.common import identifier
|
||||||
@ -38,7 +39,6 @@ from heat.engine.resources import nova_utils
|
|||||||
from heat.engine import service
|
from heat.engine import service
|
||||||
from heat.engine import stack_lock
|
from heat.engine import stack_lock
|
||||||
from heat.engine import watchrule
|
from heat.engine import watchrule
|
||||||
from heat.openstack.common.fixture import mockpatch
|
|
||||||
from heat.openstack.common.rpc import common as rpc_common
|
from heat.openstack.common.rpc import common as rpc_common
|
||||||
from heat.openstack.common.rpc import proxy
|
from heat.openstack.common.rpc import proxy
|
||||||
from heat.openstack.common import threadgroup
|
from heat.openstack.common import threadgroup
|
||||||
|
@ -5,7 +5,6 @@ module=db
|
|||||||
module=db.sqlalchemy
|
module=db.sqlalchemy
|
||||||
module=eventlet_backdoor
|
module=eventlet_backdoor
|
||||||
module=excutils
|
module=excutils
|
||||||
module=fixture
|
|
||||||
module=gettextutils
|
module=gettextutils
|
||||||
module=importutils
|
module=importutils
|
||||||
module=jsonutils
|
module=jsonutils
|
||||||
|
@ -6,6 +6,7 @@ lockfile>=0.8
|
|||||||
mock>=1.0
|
mock>=1.0
|
||||||
mox>=0.5.3
|
mox>=0.5.3
|
||||||
oslosphinx
|
oslosphinx
|
||||||
|
oslotest
|
||||||
python-glanceclient>=0.9.0
|
python-glanceclient>=0.9.0
|
||||||
sphinx>=1.1.2,<1.2
|
sphinx>=1.1.2,<1.2
|
||||||
testrepository>=0.0.18
|
testrepository>=0.0.18
|
||||||
|
Loading…
Reference in New Issue
Block a user