diff options
Diffstat (limited to 'tests/main/conftest.py')
-rw-r--r-- | tests/main/conftest.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/main/conftest.py b/tests/main/conftest.py new file mode 100644 index 0000000..c985380 --- /dev/null +++ b/tests/main/conftest.py @@ -0,0 +1,56 @@ +# ============LICENSE_START======================================================= +# Copyright (c) 2019 AT&T Intellectual Property. 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. +# ============LICENSE_END========================================================= +# +""" +startdard pytest file that contains the shared fixtures +https://docs.pytest.org/en/latest/fixture.html +""" + +import pytest + +from policyhandler import pdp_client +from policyhandler.pdp_api.pdp_consts import PDP_POLICY_ID, PDP_REQ_RESOURCE +from policyhandler.utils import Utils + +from ..mock_tracker import MockHttpResponse +from .mock_policy_engine import MockPolicyEngine + +_LOGGER = Utils.get_logger(__file__) + +@pytest.fixture(scope="session", autouse=True) +def _auto_setup_policy_engine(): + """initialize the mock-policy-engine per the whole test session""" + _LOGGER.info("create _auto_setup_policy_engine") + MockPolicyEngine.init() + yield _auto_setup_policy_engine + _LOGGER.info("teardown _auto_setup_policy_engine") + +@pytest.fixture() +def fix_pdp_post(monkeypatch): + """monkeyed request /decision/v1 to PDP""" + def monkeyed_policy_rest_post(uri, json=None, **kwargs): + """monkeypatch for the POST to policy-engine""" + policy_ids = json.get(PDP_REQ_RESOURCE, {}).get(PDP_POLICY_ID) + policy_id = policy_ids and policy_ids[0] + res_json = MockPolicyEngine.get_policy(policy_id) + return MockHttpResponse("post", uri, res_json, json=json, **kwargs) + + _LOGGER.info("setup fix_pdp_post") + pdp_client.PolicyRest._lazy_init() + monkeypatch.setattr('policyhandler.pdp_client.PolicyRest._requests_session.post', + monkeyed_policy_rest_post) + yield fix_pdp_post + _LOGGER.info("teardown fix_pdp_post") |