[bitbake-devel] [PATCH] tests/data: Add log parsing test code

Richard Purdie richard.purdie at linuxfoundation.org
Tue May 26 15:17:42 UTC 2015


This allows us to write tests which ensure a particular action generates
a particular log message.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

diff --git a/bitbake/lib/bb/tests/data.py b/bitbake/lib/bb/tests/data.py
index 7994a88..6ed80fb 100644
--- a/bitbake/lib/bb/tests/data.py
+++ b/bitbake/lib/bb/tests/data.py
@@ -25,6 +25,28 @@ import bb
 import bb.data
 import bb.parse
 
+class LogRecord():
+    def __enter__(self):
+        import logging
+        logs = []
+        class LogHandler(logging.Handler):
+            def emit(self, record):
+                logs.append(record)
+
+        logger = logging.getLogger("BitBake")
+        handler = LogHandler()
+        logger.addHandler(handler)
+        return logs
+    def __exit__(self, type, value, traceback):
+        return
+
+def LogContains(item, logs):
+    for l in logs:
+        m = l.getMessage()
+        if item in m:
+            return True
+    return False
+
 class DataExpansions(unittest.TestCase):
     def setUp(self):
         self.d = bb.data.init()





More information about the bitbake-devel mailing list