summary refs log tree commit diff
path: root/tests/unittest.py
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2014-09-12 18:29:07 +0100
committerPaul "LeoNerd" Evans <paul@matrix.org>2014-09-12 18:46:13 +0100
commitca8349a897c233d72ea74128dabdd1311f00c13c (patch)
treeb7039b887254cd2f4236d4d5e23d5e5221423c33 /tests/unittest.py
parentHave all unit tests import from our own subclass of trial's unittest TestCase... (diff)
downloadsynapse-ca8349a897c233d72ea74128dabdd1311f00c13c.tar.xz
Allow a TestCase to set a 'loglevel' attribute, which overrides the logging level while that testcase runs
Diffstat (limited to '')
-rw-r--r--tests/unittest.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/unittest.py b/tests/unittest.py

index 00c3c532eb..19be03b96a 100644 --- a/tests/unittest.py +++ b/tests/unittest.py
@@ -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