diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-11-02 04:21:43 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-11-02 05:08:52 +0100 |
| commit | de0a7f5d17807506f177b5dc90a6d9ccdb679435 (patch) | |
| tree | 5fd93e471219070754b5cfff6c497eb7ff9c3325 /prettier.py | |
| parent | 29387bf2bcc964a572a4bb267b13e685ca20d643 (diff) | |
| download | ft_printf_test-de0a7f5d17807506f177b5dc90a6d9ccdb679435.tar.gz ft_printf_test-de0a7f5d17807506f177b5dc90a6d9ccdb679435.tar.bz2 ft_printf_test-de0a7f5d17807506f177b5dc90a6d9ccdb679435.zip | |
Moved tests in tests/, improved prettier with arguments
Diffstat (limited to 'prettier.py')
| -rw-r--r-- | prettier.py | 47 |
1 files changed, 38 insertions, 9 deletions
diff --git a/prettier.py b/prettier.py index f12978f..9425f80 100644 --- a/prettier.py +++ b/prettier.py @@ -1,19 +1,33 @@ import sys +import argparse + def green(*strings): return "".join([f"\033[32m{s}\033[0m" for s in strings]) + def red(*strings): return "".join([f"\033[31m{s}\033[0m" for s in strings]) +def parse_args(): + parser = argparse.ArgumentParser( prog="ft_printf test", description="A ~quicker tester for ft_printf") + parser.add_argument("-v", "--verbose", + help="increase verbosity", action="store_true") + parser.add_argument("-q", "--quiet", + help="decrease vebosity", action="store_true") + parser.add_argument("-l", "--no-log", + help="disable result log", action="store_true") + parser.add_argument("-f", "--output-file", help="output file name") + return vars(parser.parse_args(sys.argv[1:])) + + def parse(): logs = { "ok": 0, "ko": 0, "ko_info": [] } - for line in sys.stdin: line = line.strip() if line.find("[OK]") != -1: @@ -31,22 +45,37 @@ def parse(): return logs -# def write_logs(logs): +def write_logs(logs, options): + filename = "result.log" + if options["output_file"] is not None: + filename = options["output_file"] + with open(filename, "w") as log_file: + for ko in logs["ko_info"]: + log_file.write("- " + ko["msg"] + "\n") + log_file.write(" " + ko["expected"] + "\n") + log_file.write(" " + ko["actual"] + "\n\n") + -def print_logs(logs): +def print_logs(logs, options): total_str = f"\n\nTotal {green('OK: ', logs['ok'])} {red('KO: ', logs['ko'])}" print(total_str) print("=" * (len(total_str) - len(green("")) * 2 - len(red("")) * 2 - 2)) + if options["quiet"]: + return for ko in logs["ko_info"]: - print(ko["msg"]) - print(" ", ko["expected"]) - print(" ", ko["actual"]) - print() + print("-", ko["msg"]) + if options["verbose"]: + print(" ", ko["expected"]) + print(" ", ko["actual"]) + print() + print("\nSee result.log for more information\n") if __name__ == "__main__": print() + options = parse_args() logs = parse() - # write_logs(logs) - print_logs(logs) + print_logs(logs, options) + if not options["no_log"]: + write_logs(logs, options) |
