def test_web_policies_latest(self): """test POST /policies_latest with policyName""" match_to_policy_name = MockPolicyEngine2018.scope_prefix + "amet.*" expected_policies = MockPolicyEngine2018.gen_policies_latest( match_to_policy_name) body = json.dumps({POLICY_NAME: match_to_policy_name}) request_id = str(uuid.uuid4()) result = self.getPage("/policies_latest", method='POST', body=body, headers=[(REQUEST_X_ECOMP_REQUESTID, request_id), (REQUEST_X_ONAP_REQUESTID, request_id), ("Content-Type", "application/json"), ('Content-Length', str(len(body)))]) _LOGGER.info("result: %s", result) _LOGGER.info("body: %s", self.body) self.assertStatus('200 OK') policies_latest = json.loads(self.body)[LATEST_POLICIES] _LOGGER.info("policies_latest: %s", json.dumps(policies_latest)) _LOGGER.info("expected_policies: %s", json.dumps(expected_policies)) assert Utils.are_the_same(policies_latest, expected_policies) result = self.getPage("/healthcheck") _LOGGER.info("healthcheck result: %s", result) Tracker.validate()
def test_get_policy_latest(): """test /policy_latest/<policy-id>""" policy_id, expected_policy = MockPolicyEngine2018.gen_policy_latest(3) audit = Audit(job_name="test_get_policy_latest", req_message="get /policy_latest/{}".format(policy_id or "")) policy_latest = pdp_client.PolicyRest.get_latest_policy((audit, policy_id, None, None)) or {} audit.audit_done(result=json.dumps(policy_latest)) _LOGGER.info("expected_policy: %s", json.dumps(expected_policy)) _LOGGER.info("policy_latest: %s", json.dumps(policy_latest)) assert Utils.are_the_same(policy_latest, expected_policy) Tracker.validate()
def test_web_policy_latest(self): """test /policy_latest/<policy-id>""" policy_id, expected_policy = MockPolicyEngine2018.gen_policy_latest(3) self.getPage("/policy_latest/{0}".format(policy_id or "")) self.assertStatus('200 OK') policy_latest = json.loads(self.body) _LOGGER.info("policy_latest: %s", self.body) _LOGGER.info("expected_policy: %s", json.dumps(expected_policy)) assert Utils.are_the_same(policy_latest, expected_policy) result = self.getPage("/healthcheck") _LOGGER.info("healthcheck result: %s", result) Tracker.validate()
def validate(): """validate that the message history is as expected""" _LOGGER.info("Tracker.validate(%s)", Tracker.test_name) Tracker.validated_tests[Tracker.test_name] = True requests = [ Tracker._hide_volatiles(copy.deepcopy(request)) for request in Tracker.requests ] expected_reqs = [ Tracker._hide_volatiles(copy.deepcopy(expected.get(REQUEST))) for expected in Tracker.expected ] _LOGGER.info("requests: %s", json.dumps(requests, sort_keys=True)) _LOGGER.info("expected: %s", json.dumps(expected_reqs, sort_keys=True)) assert Utils.are_the_same(requests, expected_reqs) _LOGGER.info("history valid for Tracker.validate(%s)", Tracker.test_name) Tracker.valid_tests[Tracker.test_name] = True
def get_response(request): """ track the request to the history of requests and return the response with the status_code from the expected history queue """ request_idx = len(Tracker.requests) request = copy.deepcopy(request) Tracker.requests.append(request) if request_idx < len(Tracker.expected): expected = Tracker.expected[request_idx] or {} masked_request = Tracker._hide_volatiles(copy.deepcopy(request)) expected_request = Tracker._hide_volatiles( copy.deepcopy(expected.get(REQUEST))) if Utils.are_the_same(masked_request, expected_request): _LOGGER.info("as expected[%s]: %s", request_idx, json.dumps(expected, sort_keys=True)) return expected.get(STATUS_CODE), expected.get(RESPONSE) unexpected_request = { "unit-test-tracker": { "request_idx": request_idx, "received_request": copy.deepcopy(request), "expected": copy.deepcopy(expected.get(REQUEST)) } } _LOGGER.error("unexpected_request[%s]: %s", request_idx, json.dumps(unexpected_request, sort_keys=True)) return None, unexpected_request unexpected_request = { "unit-test-tracker": { "request_idx": request_idx, "out-of-range": len(Tracker.expected), "received_request": copy.deepcopy(request) } } _LOGGER.error("unexpected_request[%s]: %s", request_idx, json.dumps(unexpected_request, sort_keys=True)) return None, unexpected_request
def test_web_all_policies_latest(self): """test GET /policies_latest""" expected_policies = MockPolicyEngine2018.gen_all_policies_latest() result = self.getPage("/policies_latest") _LOGGER.info("result: %s", result) _LOGGER.info("body: %s", self.body) self.assertStatus('200 OK') policies_latest = json.loads(self.body) self.assertIn(LATEST_POLICIES, policies_latest) policies_latest = policies_latest[LATEST_POLICIES] _LOGGER.info("policies_latest: %s", json.dumps(policies_latest)) _LOGGER.info("expected_policies: %s", json.dumps(expected_policies)) assert Utils.are_the_same(policies_latest, expected_policies) result = self.getPage("/healthcheck") _LOGGER.info("healthcheck result: %s", result) Tracker.validate()
def test_web_policy_latest(self): """test /policy_latest/<policy-id>""" policy_id = "test_scope_prefix.pdp_decision_sit" expected_policy = { "policy_id": "test_scope_prefix.pdp_decision_sit", "policy_body": { "type": "unit.test.type.policies", "version": "1.0.0", "metadata": { "policy-id": "test_scope_prefix.pdp_decision_sit", "policy-version": "4.4.4", "description": "description for test_scope_prefix.pdp_decision_sit" }, "policyName": "test_scope_prefix.pdp_decision_sit.4-4-4.xml", "policyVersion": "4.4.4", "config": { "policy_updated_from_ver": 3, "policy_updated_to_ver": 4, "policy_hello": "world!", "updated_policy_id": "test_scope_prefix.pdp_decision_sit" } } } self.getPage("/policy_latest/{0}".format(policy_id or "")) self.assertStatus('200 OK') policy_latest = json.loads(self.body) _LOGGER.info("policy_latest: %s", self.body) _LOGGER.info("expected_policy: %s", json.dumps(expected_policy)) assert Utils.are_the_same(policy_latest, expected_policy) result = self.getPage("/healthcheck") _LOGGER.info("healthcheck result: %s", result) Tracker.validate()