aboutsummaryrefslogtreecommitdiff
path: root/suite.py
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-17 11:37:49 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-17 11:37:49 +0200
commitf36a8ccb91cb71c1e4f15dc12cdecf3167eb1420 (patch)
tree24c0a879c3618423e7285971ba5d41c433060a92 /suite.py
parent24fc395a7853f03def1350f7ff35a7f819473b79 (diff)
downloadminishell_test-f36a8ccb91cb71c1e4f15dc12cdecf3167eb1420.tar.gz
minishell_test-f36a8ccb91cb71c1e4f15dc12cdecf3167eb1420.tar.bz2
minishell_test-f36a8ccb91cb71c1e4f15dc12cdecf3167eb1420.zip
Putting everything in Test and Suite class
Diffstat (limited to 'suite.py')
-rw-r--r--suite.py38
1 files changed, 35 insertions, 3 deletions
diff --git a/suite.py b/suite.py
index 3da5f67..7d14230 100644
--- a/suite.py
+++ b/suite.py
@@ -13,10 +13,13 @@ class Suite:
def setup(cls, asked_names: [str]):
if len(asked_names) == 0:
asked_names = [s.name for s in cls.available]
- for s in cls.available:
- if s.name in asked_names:
- s.generate()
cls.available = [s for s in cls.available if s.name in asked_names]
+ for s in cls.available:
+ s.generate()
+
+ @classmethod
+ def available_names(cls) -> [str]:
+ return [s.name for s in cls.available]
def __init__(self, name: str):
self.name = name
@@ -42,6 +45,35 @@ class Suite:
def generate(self):
self.generator_func()
+ def total(self) -> (int, int):
+ passed_total = 0
+ for t in self.tests:
+ if t.result is None:
+ return (-1, -1)
+ if t.result.passed:
+ passed_total += 1
+ return (passed_total, len(self.tests) - passed_total)
+
+ @classmethod
+ def summarize(cls):
+ print("\nSummary:")
+ for s in cls.available:
+ (pass_total, fail_total) = s.total()
+ if pass_total == -1:
+ continue
+ print("{:<15} \033[32m{:2} [PASS]\033[0m \033[31m{:2} [FAIL]\033[0m"
+ .format(s.name, pass_total, fail_total))
+
+ @classmethod
+ def save_log(cls):
+ with open(config.LOG_PATH, "w") as log_file:
+ for s in cls.available:
+ for t in s.tests:
+ if t.result is not None and t.result.failed:
+ t.result.colored = False
+ t.result.set_colors()
+ log_file.write(t.result.full_diff() + '\n')
+
def suite(origin):
""" decorator for a suite function (fmt: suite_[name]) """