aboutsummaryrefslogtreecommitdiff
path: root/prettier.py
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-11-02 04:21:43 +0100
committerCharles <sircharlesaze@gmail.com>2019-11-02 05:08:52 +0100
commitde0a7f5d17807506f177b5dc90a6d9ccdb679435 (patch)
tree5fd93e471219070754b5cfff6c497eb7ff9c3325 /prettier.py
parent29387bf2bcc964a572a4bb267b13e685ca20d643 (diff)
downloadft_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.py47
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)