unit_tests.py: add silence_output attr

This commit is contained in:
The MMGen Project 2023-09-30 15:36:41 +00:00
commit ac0e08e55f
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 12 additions and 3 deletions

View file

@ -134,6 +134,10 @@ def run_test(test,subtest=None):
msg(f'Running unit subtest {test}.{subtest_disp}')
t = getattr(mod,'unit_tests')()
if getattr(t,'silence_output',False):
t._silence()
if hasattr(t,'_pre_subtest'):
getattr(t,'_pre_subtest')(test,subtest,UnitTestHelpers(subtest))
@ -142,11 +146,16 @@ def run_test(test,subtest=None):
if type(ret).__name__ == 'coroutine':
ret = async_run(ret)
except:
if getattr(t,'silence_output',False):
t._end_silence()
raise
if hasattr(t,'_post_subtest'):
getattr(t,'_post_subtest')(test,subtest,UnitTestHelpers(subtest))
if getattr(t,'silence_output',False):
t._end_silence()
if not ret:
die(4,f'Unit subtest {subtest_disp!r} failed')

View file

@ -11,6 +11,8 @@ from ..include.common import cfg
class unit_tests_base:
silence_output = False
def _silence(self):
if not cfg.verbose:
self.stdout_save = sys.stdout

View file

@ -51,12 +51,10 @@ def print_hdr(hdr):
# TODO: add data checks
class unit_tests(unit_tests_base):
def _pre_subtest(self,name,subname,ut):
self._silence()
silence_output = True
def _post_subtest(self,name,subname,ut):
print('-' * 80 + '\n')
self._end_silence()
def diff(self,name,ut):
for data in text_data + json_data: