diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-06-17 11:37:49 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-06-17 11:37:49 +0200 |
| commit | f36a8ccb91cb71c1e4f15dc12cdecf3167eb1420 (patch) | |
| tree | 24c0a879c3618423e7285971ba5d41c433060a92 /suite.py | |
| parent | 24fc395a7853f03def1350f7ff35a7f819473b79 (diff) | |
| download | minishell_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.py | 38 |
1 files changed, 35 insertions, 3 deletions
@@ -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]) """ |
