aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tests/testutils/gbplogtester.py44
1 files changed, 38 insertions, 6 deletions
diff --git a/tests/testutils/gbplogtester.py b/tests/testutils/gbplogtester.py
index 10d344e9..b42e0901 100644
--- a/tests/testutils/gbplogtester.py
+++ b/tests/testutils/gbplogtester.py
@@ -13,34 +13,54 @@ class GbpLogTester(object):
"""
def __init__(self):
"""Object initialization"""
+ # Warnings and Errors
self._log = None
self._loghandler = None
+ # Info and Debug messages
+ self._log_info = None
+ self._loghandler_info = None
def _capture_log(self, capture=True):
""" Capture log"""
if capture:
assert self._log is None, "Log capture already started"
+
+ handlers = list(gbp.log.LOGGER.handlers)
+ for hdl in handlers:
+ gbp.log.LOGGER.removeHandler(hdl)
+
self._log = StringIO()
self._loghandler = gbp.log.GbpStreamHandler(self._log, False)
self._loghandler.addFilter(gbp.log.GbpFilter([gbp.log.WARNING,
gbp.log.ERROR]))
- handlers = list(gbp.log.LOGGER.handlers)
- for hdl in handlers:
- gbp.log.LOGGER.removeHandler(hdl)
+
+ self._log_info = StringIO()
+ self._loghandler_info = gbp.log.GbpStreamHandler(self._log_info, False)
+ self._loghandler_info.addFilter(gbp.log.GbpFilter([gbp.log.DEBUG,
+ gbp.log.INFO]))
gbp.log.LOGGER.addHandler(self._loghandler)
+ gbp.log.LOGGER.addHandler(self._loghandler_info)
else:
assert self._log is not None, "Log capture not started"
gbp.log.LOGGER.removeHandler(self._loghandler)
self._loghandler.close()
- self._loghandler = None
self._log.close()
- self._log = None
+ self._loghandler = self._log = None
+
+ gbp.log.LOGGER.removeHandler(self._loghandler_info)
+ self._loghandler_info.close()
+ self._log_info.close()
+ self._loghandler_info = self._log_info = None
def _get_log(self):
"""Get the captured log output"""
self._log.seek(0)
return self._log.readlines()
+ def _get_log_info(self):
+ self._log_info.seek(0)
+ return self._log_info.readlines()
+
def _check_log_empty(self):
"""Check that nothig was logged"""
output = self._get_log()
@@ -58,7 +78,7 @@ class GbpLogTester(object):
"Log entry '%s' doesn't match '%s'" % (output, regex))
def _check_in_log(self, regex):
- """Check that the at least one line on log matches expectations"""
+ """Check that at least one line in log matches expectations"""
found = False
if self._log is None:
raise Exception("BUG in unittests: no log captured!")
@@ -69,6 +89,18 @@ class GbpLogTester(object):
break
ok_(found, "No line of %s matched '%s'" % (log, regex))
+ def _check_in_info_log(self, regex):
+ """Check that at least one line in info log matches expectations"""
+ found = False
+ if self._log_info is None:
+ raise Exception("BUG in unittests: no log captured!")
+ log = self._get_log_info()
+ for line in log:
+ if re.match(regex, line):
+ found = True
+ break
+ ok_(found, "No line of %s matched '%s'" % (log, regex))
+
def _clear_log(self):
"""Clear the mock strerr"""
if self._log is not None: