From 070528e2ada73bf9760b0c4c1ddca400520c0f2f Mon Sep 17 00:00:00 2001 From: Thomas Herve Date: Tue, 22 Apr 2014 12:01:21 +0200 Subject: [PATCH] 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 --- heat/openstack/common/fixture/__init__.py | 0 heat/openstack/common/fixture/config.py | 85 --------------------- heat/openstack/common/fixture/lockutils.py | 51 ------------- heat/openstack/common/fixture/logging.py | 34 --------- heat/openstack/common/fixture/mockpatch.py | 62 --------------- heat/openstack/common/fixture/moxstubout.py | 43 ----------- heat/tests/common.py | 2 +- heat/tests/test_engine_service.py | 2 +- openstack-common.conf | 1 - test-requirements.txt | 1 + 10 files changed, 3 insertions(+), 278 deletions(-) delete mode 100644 heat/openstack/common/fixture/__init__.py delete mode 100644 heat/openstack/common/fixture/config.py delete mode 100644 heat/openstack/common/fixture/lockutils.py delete mode 100644 heat/openstack/common/fixture/logging.py delete mode 100644 heat/openstack/common/fixture/mockpatch.py delete mode 100644 heat/openstack/common/fixture/moxstubout.py diff --git a/heat/openstack/common/fixture/__init__.py b/heat/openstack/common/fixture/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/heat/openstack/common/fixture/config.py b/heat/openstack/common/fixture/config.py deleted file mode 100644 index 9489b85a59..0000000000 --- a/heat/openstack/common/fixture/config.py +++ /dev/null @@ -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) diff --git a/heat/openstack/common/fixture/lockutils.py b/heat/openstack/common/fixture/lockutils.py deleted file mode 100644 index 854528ddca..0000000000 --- a/heat/openstack/common/fixture/lockutils.py +++ /dev/null @@ -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__() diff --git a/heat/openstack/common/fixture/logging.py b/heat/openstack/common/fixture/logging.py deleted file mode 100644 index 3823a0355f..0000000000 --- a/heat/openstack/common/fixture/logging.py +++ /dev/null @@ -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 diff --git a/heat/openstack/common/fixture/mockpatch.py b/heat/openstack/common/fixture/mockpatch.py deleted file mode 100644 index 3f76069ec5..0000000000 --- a/heat/openstack/common/fixture/mockpatch.py +++ /dev/null @@ -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) diff --git a/heat/openstack/common/fixture/moxstubout.py b/heat/openstack/common/fixture/moxstubout.py deleted file mode 100644 index 8e65768d16..0000000000 --- a/heat/openstack/common/fixture/moxstubout.py +++ /dev/null @@ -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) diff --git a/heat/tests/common.py b/heat/tests/common.py index a238510009..7aa7717415 100644 --- a/heat/tests/common.py +++ b/heat/tests/common.py @@ -20,13 +20,13 @@ import time import fixtures import mox from oslo.config import cfg +from oslotest import mockpatch import testscenarios import testtools from heat.engine import environment from heat.engine import resources from heat.engine import scheduler -from heat.openstack.common.fixture import mockpatch from heat.tests import utils diff --git a/heat/tests/test_engine_service.py b/heat/tests/test_engine_service.py index 61d1aac129..4a78e3ba51 100644 --- a/heat/tests/test_engine_service.py +++ b/heat/tests/test_engine_service.py @@ -21,6 +21,7 @@ from eventlet import greenpool import mock import mox from oslo.config import cfg +from oslotest import mockpatch from heat.common import exception 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 stack_lock 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 proxy from heat.openstack.common import threadgroup diff --git a/openstack-common.conf b/openstack-common.conf index af8d1c5b6d..0467872618 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -5,7 +5,6 @@ module=db module=db.sqlalchemy module=eventlet_backdoor module=excutils -module=fixture module=gettextutils module=importutils module=jsonutils diff --git a/test-requirements.txt b/test-requirements.txt index c026078330..507a51c815 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -6,6 +6,7 @@ lockfile>=0.8 mock>=1.0 mox>=0.5.3 oslosphinx +oslotest python-glanceclient>=0.9.0 sphinx>=1.1.2,<1.2 testrepository>=0.0.18