Allow a TestCase to set a 'loglevel' attribute, which overrides the logging level while that testcase runs
parent
cd62ee3f29
commit
ca8349a897
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue