diff options
author | stark, steven <ss820f@att.com> | 2018-08-09 15:33:25 -0700 |
---|---|---|
committer | stark, steven <ss820f@att.com> | 2018-08-09 15:34:02 -0700 |
commit | 1af0d577ab6d8c431ae1322657c50efd5e0a1a93 (patch) | |
tree | 1f5d8df2c1bf55a83468af2d15d1cd24486d8857 /ice_validator/tests/test_allowed_address_pair_format.py | |
parent | 06511c3ae3ed91250586d4b1c14130d83eaa64c8 (diff) |
[VVP] create new validation scripts
- create validation scripts for R-04747, R-30804, R-11690, R-46839, R-98407
- other small script enhancements
Change-Id: I12c42a43c83e5cb4217895c19fd0beef928dc955
Issue-ID: VVP-103
Signed-off-by: stark, steven <ss820f@att.com>
Diffstat (limited to 'ice_validator/tests/test_allowed_address_pair_format.py')
-rw-r--r-- | ice_validator/tests/test_allowed_address_pair_format.py | 92 |
1 files changed, 47 insertions, 45 deletions
diff --git a/ice_validator/tests/test_allowed_address_pair_format.py b/ice_validator/tests/test_allowed_address_pair_format.py index 683d560..721d5c9 100644 --- a/ice_validator/tests/test_allowed_address_pair_format.py +++ b/ice_validator/tests/test_allowed_address_pair_format.py @@ -1,12 +1,12 @@ # -*- coding: utf8 -*- -# ============LICENSE_START======================================================= +# ============LICENSE_START==================================================== # org.onap.vvp/validation-scripts # =================================================================== # Copyright © 2017 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); +# under the Apache License, Version 2.0 (the "License"); # you may not use this software except in compliance with the License. # You may obtain a copy of the License at # @@ -21,7 +21,7 @@ # # # Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); # you may not use this documentation except in compliance with the License. # You may obtain a copy of the License at # @@ -38,11 +38,21 @@ # ECOMP is a trademark and service mark of AT&T Intellectual Property. # +''' +test_allowed_address_pairs_format +''' + +import re + import pytest import yaml -from .utils.network_roles import get_network_role_from_port,\ - property_uses_get_resource -import re + +from .utils.network_roles import get_network_role_from_port, \ + property_uses_get_resource + +VERSION = '1.0.0' + +# pylint: disable=invalid-name def test_allowed_address_pairs_format(heat_template): @@ -88,46 +98,38 @@ def test_allowed_address_pairs_format(heat_template): invalid_allowed_address_pairs = [] for v1 in yml["resources"].values(): - if not isinstance(v1, dict): - continue - if "properties" not in v1: - continue - if v1.get("type") != "OS::Neutron::Port": - continue - if property_uses_get_resource(v1, "network"): + if (not isinstance(v1, dict) + or "properties" not in v1 + or v1.get("type") != "OS::Neutron::Port" + or property_uses_get_resource(v1, "network")): continue network_role = get_network_role_from_port(v1) - for k2, v2 in v1["properties"].items(): - if k2 != "allowed_address_pairs": + v2 = v1["properties"].get("allowed_address_pairs", {}) + for v3 in v2: + if ("ip_address" not in v3 + or "get_param" not in v3["ip_address"]): continue - for v3 in v2: - if "ip_address" not in v3: - continue - if "get_param" not in v3["ip_address"]: - continue - - valid_allowed_address_pair = False - for v4 in allowed_formats: - param = v3["ip_address"]["get_param"] - if isinstance(param, list): - param = param[0] - - # check if pattern matches - m = v4[3].match(param) - if m: - if v4[2] == "internal" and\ - len(m.groups()) > 1 and\ - m.group(2) == network_role: - valid_allowed_address_pair = True - break - elif v4[2] == "external" and\ - len(m.groups()) > 0 and\ - m.group(1).endswith("_" + network_role): - valid_allowed_address_pair = True - break - - if not valid_allowed_address_pair: - invalid_allowed_address_pairs.append(param) - - assert not set(invalid_allowed_address_pairs) + + param = v3["ip_address"]["get_param"] + if isinstance(param, list): + param = param[0] + + for v4 in allowed_formats: + # check if pattern matches + m = v4[3].match(param) + if m: + if (v4[2] == "internal" + and len(m.groups()) > 1 + and m.group(2) == network_role): + break + elif (v4[2] == "external" + and len(m.groups()) > 0 + and m.group(1).endswith("_" + network_role)): + break + else: + invalid_allowed_address_pairs.append(param) + + assert not set(invalid_allowed_address_pairs), ( + 'invalid_allowed_address_pairs %s' % list( + set(invalid_allowed_address_pairs))) |