示例#1
0
    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()
示例#2
0
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()
示例#3
0
    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
示例#6
0
    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()