From 54c5bced5f449041db6810b4837fac1002b6b123 Mon Sep 17 00:00:00 2001 From: Stefan Wehr Date: Thu, 26 Mar 2026 16:26:46 +0100 Subject: [PATCH] functionality for running unit tests --- python/code/wypp/__init__.py | 3 ++- python/code/wypp/writeYourProgram.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/python/code/wypp/__init__.py b/python/code/wypp/__init__.py index 024dd33..38ce591 100644 --- a/python/code/wypp/__init__.py +++ b/python/code/wypp/__init__.py @@ -69,10 +69,11 @@ def record(cls=None, mutable=False, globals={}, locals={}): # Exported names not available for star imports (in alphabetic order) Lock = w.Lock LockFactory = w.LockFactory +deepEq = w.deepEq initModule = w.initModule printTestResults = w.printTestResults resetTestCount = w.resetTestCount -deepEq = w.deepEq +runUnittests = w.runUnittests wrapTypecheck = w.wrapTypecheck WyppTypeError = w.WyppTypeError WyppAttributeError = w.WyppAttributeError diff --git a/python/code/wypp/writeYourProgram.py b/python/code/wypp/writeYourProgram.py index e617799..218ebc2 100644 --- a/python/code/wypp/writeYourProgram.py +++ b/python/code/wypp/writeYourProgram.py @@ -317,6 +317,16 @@ def impossible(msg=None): 'Das Unmögliche ist passiert!' raise errors.ImpossibleError(msg) +def runUnittests(scope: dict[str, Any]): + import unittest + suite = unittest.TestSuite() + loader = unittest.TestLoader() + for item in scope.values(): + if isinstance(item, type) and issubclass(item, unittest.TestCase): + if item is not unittest.TestCase: + suite.addTest(loader.loadTestsFromTestCase(item)) + unittest.TextTestRunner(verbosity=2).run(suite) + # Additional functions and aliases import math as moduleMath