Allow a TestCase to set a 'loglevel' attribute, which overrides the logging level while that testcase runs

pull/10/head
Paul "LeoNerd" Evans 2014-09-12 18:29:07 +01:00
parent cd62ee3f29
commit ca8349a897
1 changed files with 22 additions and 1 deletions

View File

@ -27,4 +27,25 @@ logging.getLogger().setLevel(NEVER)
class TestCase(unittest.TestCase):
pass
def __init__(self, *args, **kwargs):
super(TestCase, self).__init__(*args, **kwargs)
level = getattr(self, "loglevel", NEVER)
orig_setUp = self.setUp
def setUp():
old_level = logging.getLogger().level
if old_level != level:
orig_tearDown = self.tearDown
def tearDown():
ret = orig_tearDown()
logging.getLogger().setLevel(old_level)
return ret
self.tearDown = tearDown
logging.getLogger().setLevel(level)
return orig_setUp()
self.setUp = setUp