+ 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)
+
+ # 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))
+
+ # 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,
+ location_html, arb_msg_html, object_html, hints_html, class_html, turn_html
+ ))