Also made heat req't json and req't mapping optional in checks.py
Change-Id: I38367e768de704cca3727bccb8f8bcdb04f9b193
Issue-ID: VVP-311
Signed-off-by: Lovett, Trevor <trevor.lovett@att.com>
"""
testable_mappings = [m for m in self.mappings if m[self.IS_TESTABLE] == "True"]
return [
"""
testable_mappings = [m for m in self.mappings if m[self.IS_TESTABLE] == "True"]
return [
- f"Missing test for {m[self.REQ_ID]}"
+ f"WARN: Missing test for {m[self.REQ_ID]}"
for m in testable_mappings
if not m[self.TEST_NAME]
]
for m in testable_mappings
if not m[self.TEST_NAME]
]
"""
Checks if the requirements file packaged with VVP has meaningful differences
to the requirements file published from VNFRQTS.
"""
Checks if the requirements file packaged with VVP has meaningful differences
to the requirements file published from VNFRQTS.
- :return: list of errors found
- msg = ["heat_requirements.json is out-of-date. Run update_reqs.py to update."]
+ msg = "WARN: heat_requirements.json is out-of-date. Run update_reqs.py to update."
latest_needs = json.load(get_requirements())
with open(CURRENT_NEEDS_PATH, "r") as f:
current_needs = json.load(f)
latest_reqs = select_items(in_scope, current_version(latest_needs))
current_reqs = select_items(in_scope, current_version(current_needs))
if set(latest_reqs.keys()) != set(current_reqs.keys()):
latest_needs = json.load(get_requirements())
with open(CURRENT_NEEDS_PATH, "r") as f:
current_needs = json.load(f)
latest_reqs = select_items(in_scope, current_version(latest_needs))
current_reqs = select_items(in_scope, current_version(current_needs))
if set(latest_reqs.keys()) != set(current_reqs.keys()):
- return msg
- if not all(
+ print(msg)
+ elif not all(
latest["description"] == current_reqs[r_id]["description"]
for r_id, latest in latest_reqs.items()
):
latest["description"] == current_reqs[r_id]["description"]
for r_id, latest in latest_reqs.items()
):
- return msg
- return None
def check_app_tests_pass():
def check_app_tests_pass():
def check_testable_requirements_are_mapped():
tracing = Traceability()
def check_testable_requirements_are_mapped():
tracing = Traceability()
- return tracing.unmapped_requirement_errors()
+ print("\n".join(tracing.unmapped_requirement_errors()))
def check_non_testable_requirements_are_not_mapped():
def check_non_testable_requirements_are_not_mapped():
stderr=subprocess.PIPE, # nosec
) # nosec
msgs = result.stdout.split("\n") if result.returncode != 0 else []
stderr=subprocess.PIPE, # nosec
) # nosec
msgs = result.stdout.split("\n") if result.returncode != 0 else []
- return ["bandit errors detected:"] + [f" {e}" for e in msgs] if msgs else []
+ return (
+ ["bandit errors detected:"] + [" {}".format(e) for e in msgs] if msgs else []
+ )
if __name__ == "__main__":
if __name__ == "__main__":
checks = [
check_self_test_pass,
checks = [
check_self_test_pass,
- check_requirements_up_to_date,
- check_testable_requirements_are_mapped,
check_non_testable_requirements_are_not_mapped,
check_flake8_passes,
check_bandit_passes,
check_non_testable_requirements_are_not_mapped,
check_flake8_passes,
check_bandit_passes,
results = [check() for check in checks]
errors = "\n".join("\n".join(msg) for msg in results if msg)
print(errors or "Everything looks good!")
results = [check() for check in checks]
errors = "\n".join("\n".join(msg) for msg in results if msg)
print(errors or "Everything looks good!")
+ check_requirements_up_to_date()
+ check_testable_requirements_are_mapped()
sys.exit(1 if errors else 0)
sys.exit(1 if errors else 0)
return [e for e in all_envs if e.is_leaf]
def get_module(self, name):
return [e for e in all_envs if e.is_leaf]
def get_module(self, name):
- name = name if name.lower().endswith(".env") else f"{name}.env".lower()
+ name = name if name.lower().endswith(".env") else "{}.env".format(name).lower()
if name not in self.module_names:
return {}
result = {}
if name not in self.module_names:
return {}
result = {}