+def build_rst_json(reqs):
+ """Takes requirements and returns list of only Heat requirements"""
+ data = json.loads(reqs)
+ for key, values in list(data.items()):
+ if "Heat" in (values["docname"]):
+ if "MUST" in (values["keyword"]):
+ if "none" in (values["validation_mode"]):
+ del data[key]
+ else:
+ """Creates links in RST format to requirements and test cases"""
+ if values["test_case"]:
+ val_list = re.findall(r'(?<=\.).*', values["test_case"])
+ val = TEST_SCRIPT_SITE + val_list[0] + ".py"
+ rst_value = ("`" + val_list[0] + " <" + val + ">`_")
+ title = "`" + values["id"] + " <" + VNFRQTS_ID_URL + values["docname"].replace(" ", "%20") + ".html#" + values["id"] + ">`_"
+ data[key].update({'full_title': title, 'test_case': rst_value})
+ else:
+ del data[key]
+ else:
+ del data[key]
+ else:
+ del data[key]
+ return data
+
+
+def generate_rst_table(data):
+ """Generate a formatted csv to be used in RST"""
+ rst_path = os.path.join(__path__[0], "../output/rst.csv")
+ with open(rst_path, "w", newline="") as f:
+ out = csv.writer(f)
+ out.writerow(
+ ("Requirement ID", "Requirement", "Test Module", "Test Name"),
+ )
+ for req_id, metadata in data.items():
+ out.writerow(
+ (
+ metadata["full_title"],
+ metadata["description"],
+ metadata["test_case"],
+ metadata["validated_by"],
+ )
+ )
+
+