+ success = "uncovered"
+ else:
+ success = "covered"
+ objects_covered += 1
+ object_html += object_row.format("%s[%d]" % (obj_name, j), success)
+ objects_percent = round((objects_covered / float(objects_total)) * 100, 1)
+
+ hints.sort()
+ hints_html = "";
+ hints_total = len(hints) * 2
+ hints_covered = 0
+ for name, hint in hints:
+ if hint["question"] != True:
+ question_success = "uncovered"
+ else:
+ question_success = "covered"
+ hints_covered += 1
+ if hint["hint"] != True:
+ hint_success = "uncovered"
+ else:
+ hint_success = "covered"
+ hints_covered += 1
+ hints_html += location_row.format(name, question_success, hint_success)
+ hints_percent = round((hints_covered / float(hints_total)) * 100, 1)
+
+ class_html = ""
+ class_total = len(classes)
+ class_covered = 0
+ for name, msg in enumerate(classes):
+ if msg["message"] != True:
+ success = "uncovered"
+ else:
+ success = "covered"
+ class_covered += 1
+ class_html += arb_msg_row.format(msg["threshold"], success)
+ class_percent = round((class_covered / float(class_total)) * 100, 1)
+
+ turn_html = ""
+ turn_total = len(turn_thresholds)
+ turn_covered = 0
+ for name, msg in enumerate(turn_thresholds):
+ if msg["message"] != True:
+ success = "uncovered"
+ else:
+ success = "covered"
+ turn_covered += 1
+ turn_html += arb_msg_row.format(msg["threshold"], success)
+ turn_percent = round((turn_covered / float(turn_total)) * 100, 1)
+
+ obituaries_html = "";
+ obituaries_total = len(obituaries) * 2
+ obituaries_covered = 0
+ for i, obit in enumerate(obituaries):
+ if obit["query"] != True:
+ query_success = "uncovered"
+ else:
+ query_success = "covered"
+ obituaries_covered += 1
+ if obit["yes_response"] != True:
+ obit_success = "uncovered"
+ else:
+ obit_success = "covered"
+ obituaries_covered += 1
+ obituaries_html += location_row.format(i, query_success, obit_success)
+ obituaries_percent = round((obituaries_covered / float(obituaries_total)) * 100, 1)
+
+ actions.sort()
+ actions_html = "";
+ actions_total = len(actions)
+ actions_covered = 0
+ for name, action in actions:
+ if action["message"] != True:
+ success = "uncovered"
+ else:
+ success = "covered"
+ actions_covered += 1
+ actions_html += arb_msg_row.format(name, success)
+ actions_percent = round((actions_covered / float(actions_total)) * 100, 1)
+
+ special_html = ""
+ special_total = len(specials)
+ special_covered = 0
+ for name, special in specials:
+ if special["message"] != True:
+ success = "uncovered"
+ else:
+ success = "covered"
+ special_covered += 1
+ special_html += arb_msg_row.format(name, success)
+ special_percent = round((special_covered / float(special_total)) * 100, 1)
+
+ # output some quick report stats
+ print("\nadventure.yaml coverage rate:")
+ print(" locations..........: {}% covered ({} of {})".format(location_percent, location_covered, location_total))
+ print(" arbitrary_messages.: {}% covered ({} of {})".format(arb_percent, arb_covered, arb_total))
+ print(" objects............: {}% covered ({} of {})".format(objects_percent, objects_covered, objects_total))
+ print(" hints..............: {}% covered ({} of {})".format(hints_percent, hints_covered, hints_total))
+ print(" classes............: {}% covered ({} of {})".format(class_percent, class_covered, class_total))
+ print(" turn_thresholds....: {}% covered ({} of {})".format(turn_percent, turn_covered, turn_total))
+ print(" obituaries.........: {}% covered ({} of {})".format(obituaries_percent, obituaries_covered, obituaries_total))
+ print(" actions............: {}% covered ({} of {})".format(actions_percent, actions_covered, actions_total))
+ print(" specials...........: {}% covered ({} of {})".format(special_percent, special_covered, special_total))
+
+ # render HTML report
+ with open(html_output_path, "w") as f:
+ f.write(html_template.format(
+ location_total, location_covered, location_percent,
+ arb_total, arb_covered, arb_percent,
+ objects_total, objects_covered, objects_percent,
+ hints_total, hints_covered, hints_percent,
+ class_total, class_covered, class_percent,
+ turn_total, turn_covered, turn_percent,
+ obituaries_total, obituaries_covered, obituaries_percent,
+ actions_total, actions_covered, actions_percent,
+ special_total, special_covered, special_percent,
+ location_html, arb_msg_html, object_html, hints_html,
+ class_html, turn_html, obituaries_html, actions_html, special_html
+ ))