aboutsummaryrefslogtreecommitdiff
path: root/suite.py
diff options
context:
space:
mode:
Diffstat (limited to 'suite.py')
-rw-r--r--suite.py107
1 files changed, 0 insertions, 107 deletions
diff --git a/suite.py b/suite.py
deleted file mode 100644
index 6b04dc5..0000000
--- a/suite.py
+++ /dev/null
@@ -1,107 +0,0 @@
-# ############################################################################ #
-# #
-# ::: :::::::: #
-# suite.py :+: :+: :+: #
-# +:+ +:+ +:+ #
-# By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ #
-# +#+#+#+#+#+ +#+ #
-# Created: 2020/07/15 18:24:29 by charles #+# #+# #
-# Updated: 2020/07/19 15:29:36 by charles ### ########.fr #
-# #
-# ############################################################################ #
-
-import config
-from test import Test
-
-class Suite:
- available = []
-
- @classmethod
- def run_all(cls):
- for s in cls.available:
- s.run()
-
- @classmethod
- def setup(cls, asked_names: [str]):
- if len(asked_names) == 0:
- asked_names = [s.name for s in cls.available]
- 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
- self.generator_func = None
- self.tests = []
-
- def add(self, test):
- self.tests.append(test)
-
- def add_generator(self, generator):
- self.generator_func = generator
-
- def run(self):
- if config.VERBOSE_LEVEL == 0:
- print(self.name + ": ", end="")
- else:
- print("{} {:#<41}".format("#" * 39, self.name + " "))
- for t in self.tests:
- t.run()
- if config.VERBOSE_LEVEL == 0:
- print()
-
- 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):
- pass_sum = 0
- fail_sum = 0
- print("\nSummary:")
- for s in cls.available:
- (pass_total, fail_total) = s.total()
- if pass_total == -1:
- continue
- pass_sum += pass_total
- fail_sum += fail_total
- print("{:<15} \033[32m{:3} [PASS]\033[0m \033[31m{:3} [FAIL]\033[0m"
- .format(s.name, pass_total, fail_total))
- print("{:<15} \033[32m{:3} [PASS]\033[0m \033[31m{:3} [FAIL]\033[0m"
- .format("TOTAL", pass_sum, fail_sum))
-
- @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]) """
-
- name = origin.__name__[len("suite_"):]
- s = Suite(name)
- def test_generator():
- def test(*args, **kwargs):
- s.add(Test(*args, **kwargs))
- origin(test)
- s.add_generator(test_generator)
- Suite.available.append(s)
- return test_generator