oslo.policy/oslo_policy/fixture.py
Davanum Srinivas bcfe188c38 Custom fixture to avoid external call in HttpCheck
Neutron was mocking urlrequest.urlopen as the original
implementation in oslo.policy was using that inside HttpCheck,
then we switched over to requests.post with change
I364ddb5f86900a3e166f4480d9f4889a68de247f
and a fresh oslo.policy version would have broken them. So
we should have a fixture to enable them to write their
tests without knowing how it is implemented.

Closes-Bug: #1503890
Change-Id: Ia482de71d3db5b89599a1d708a415364cdb468f8
2015-10-08 16:50:01 -07:00

35 lines
1.2 KiB
Python

# 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.
__all__ = ['HttpCheckFixture']
import fixtures
from oslo_policy import policy as oslo_policy
class HttpCheckFixture(fixtures.MockPatchObject):
"""Helps short circuit the external http call"""
def __init__(self, return_value=True):
"""Initialize the fixture.
:param return_value: True implies the policy check passed and False
implies that the policy check failed
:type return_value: boolean
"""
super(HttpCheckFixture, self).__init__(
oslo_policy._checks.HttpCheck,
'__call__',
return_value=return_value
)