aboutsummaryrefslogtreecommitdiffstats
path: root/tests/main/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/main/conftest.py')
-rw-r--r--tests/main/conftest.py56
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")