diff --git a/check50/renderer/_renderers.py b/check50/renderer/_renderers.py index 0ddc252..0795032 100644 --- a/check50/renderer/_renderers.py +++ b/check50/renderer/_renderers.py @@ -1,5 +1,6 @@ import json import pathlib +import random import jinja2 import termcolor @@ -26,8 +27,10 @@ def to_json(slug, results, version): def to_ansi(slug, results, version, _log=False): lines = [termcolor.colored(_("Results for {} generated by check50 v{}").format(slug, version), "white", attrs=["bold"])] + num_passed = 0 for result in results: if result["passed"]: + num_passed += 1 lines.append(termcolor.colored(f":) {result['description']}", "green")) elif result["passed"] is None: lines.append(termcolor.colored(f":| {result['description']}", "yellow")) @@ -44,5 +47,15 @@ def to_ansi(slug, results, version, _log=False): if _log: lines += (f" {line}" for line in result["log"]) + + if not all(result["passed"] for result in results) and num_passed > len(results) // 2: + if random.random() < 0.20: + message = random.choice([ + "~~~~~ You can do it! ~~~~~", + "~~~~~ Keep it up! ~~~~~", + "~~~~~ You're getting there! ~~~~~" + ]) + lines.append(termcolor.colored(message, "magenta")) + return "\n".join(lines)