diff options
| author | Monty Taylor <mordred@inaugust.com> | 2013-02-06 05:46:16 -0600 |
|---|---|---|
| committer | Monty Taylor <mordred@inaugust.com> | 2013-02-07 06:22:35 -0600 |
| commit | d332cca78e78ee73ecd2c241bbb6bb4b2d2455ec (patch) | |
| tree | a711eaf167915bd114787ea6bb13329c0ca160b8 /openstack | |
| parent | 076e9e5be20a104e8d8882235f188f98a38dea89 (diff) | |
| download | oslo-d332cca78e78ee73ecd2c241bbb6bb4b2d2455ec.tar.gz oslo-d332cca78e78ee73ecd2c241bbb6bb4b2d2455ec.tar.xz oslo-d332cca78e78ee73ecd2c241bbb6bb4b2d2455ec.zip | |
Add a fixture for dealing with mock patching.
Quantum uses a pattern all over their test base, which can be
collapsed down into a simple re-usable fixture.
Change-Id: I5944505ce44ce8b79a685c3ea392f001307b5319
Diffstat (limited to 'openstack')
| -rw-r--r-- | openstack/common/fixture/mockpatch.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/openstack/common/fixture/mockpatch.py b/openstack/common/fixture/mockpatch.py new file mode 100644 index 0000000..cd0d6ca --- /dev/null +++ b/openstack/common/fixture/mockpatch.py @@ -0,0 +1,51 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# 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. + +import fixtures +import mock + + +class PatchObject(fixtures.Fixture): + """Deal with code around mock.""" + + def __init__(self, obj, attr, **kwargs): + self.obj = obj + self.attr = attr + self.kwargs = kwargs + + def setUp(self): + super(PatchObject, self).setUp() + _p = mock.patch.object(self.obj, self.attr, **self.kwargs) + self.mock = _p.start() + self.addCleanup(_p.stop) + + +class Patch(fixtures.Fixture): + + """Deal with code around mock.patch.""" + + def __init__(self, obj, **kwargs): + self.obj = obj + self.kwargs = kwargs + + def setUp(self): + super(Patch, self).setUp() + _p = mock.patch(self.obj, **self.kwargs) + self.mock = _p.start() + self.addCleanup(_p.stop) |
