Browse Source

unit_tests.py: add `silence_output` attr

The MMGen Project 1 year ago
parent
commit
ac0e08e55f
3 changed files with 12 additions and 3 deletions
  1. 9 0
      test/unit_tests.py
  2. 2 0
      test/unit_tests_d/__init__.py
  3. 1 3
      test/unit_tests_d/ut_devtools.py

+ 9 - 0
test/unit_tests.py

@@ -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')
 

+ 2 - 0
test/unit_tests_d/__init__.py

@@ -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

+ 1 - 3
test/unit_tests_d/ut_devtools.py

@@ -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: