X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tests%2Fcoverage_dungeon.py;h=c583ffb5f79689fbb9244a86d86edec4be009965;hb=54927c33e548c58080232f43584bdd8cbcea068d;hp=c2ccabe05a96448a3ce8bb499fdad4aea01dd43b;hpb=3f34adad3b6596b3a99175b071f83e70a5e0d594;p=open-adventure.git diff --git a/tests/coverage_dungeon.py b/tests/coverage_dungeon.py index c2ccabe..c583ffb 100755 --- a/tests/coverage_dungeon.py +++ b/tests/coverage_dungeon.py @@ -7,9 +7,10 @@ various strings contained are present within the test check files. The default HTML output is appropriate for use with Gitlab CI. You can override it with a command-line argument. -The DANGLING list is for actions that should be considered always found -even if the checkfile search doesn't find them. Typically this will because -they emit a templated message that can't be regression-tested by equality. +The DANGLING lists are for actions and messages that should be +considered always found even if the checkfile search doesn't find them. +Typically this will because an action emit a templated message that +can't be regression-tested by equality. """ # pylint: disable=consider-using-f-string,line-too-long,invalid-name,missing-function-docstring,redefined-outer-name @@ -23,7 +24,8 @@ TEST_DIR = "." YAML_PATH = "../adventure.yaml" HTML_TEMPLATE_PATH = "../templates/coverage_dungeon.html.tpl" DEFAULT_HTML_OUTPUT_PATH = "../coverage/adventure.yaml.html" -DANGLING = ["ACT_VERSION"] +DANGLING_ACTIONS = ["ACT_VERSION"] +DANGLING_MESSAGES = ["SAVERESUME_DISABLED"] STDOUT_REPORT_CATEGORY = " {name:.<19}: {percent:5.1f}% covered ({covered} of {total})\n" @@ -97,7 +99,7 @@ def obj_coverage(objects, text, report): def loc_coverage(locations, text, report): # locations have a long and a short description, that each have to - # be checked seperately + # be checked separately for name, loc in locations: desc = loc["description"] if name not in report["messages"]: @@ -145,7 +147,7 @@ def threshold_coverage(classes, text, report): # property for name, item in enumerate(classes): if name not in report["messages"]: - report["messages"][name] = {"covered" : "False"} + report["messages"][name] = {"covered" : False} report["total"] += 1 if not report["messages"][name]["covered"] and search(item["message"], text): report["messages"][name]["covered"] = True @@ -156,7 +158,7 @@ def arb_coverage(arb_msgs, text, report): if name not in report["messages"]: report["messages"][name] = {"covered" : False} report["total"] += 1 - if not report["messages"][name]["covered"] and search(message, text): + if not report["messages"][name]["covered"] and (search(message, text) or name in DANGLING_MESSAGES): report["messages"][name]["covered"] = True report["covered"] += 1 @@ -166,12 +168,12 @@ def actions_coverage(items, text, report): if name not in report["messages"]: report["messages"][name] = {"covered" : False} report["total"] += 1 - if not report["messages"][name]["covered"] and (search(item["message"], text) or name in DANGLING): + if not report["messages"][name]["covered"] and (search(item["message"], text) or name in DANGLING_ACTIONS): report["messages"][name]["covered"] = True report["covered"] += 1 def coverage_report(db, check_file_contents): - # Create report for each catagory, including total items, number of items + # Create report for each category, including total items, number of items # covered, and a list of the covered messages report = {} for name in db.keys():