Skip to contentSkip to conversation

tests/data: Add log parsing test code

PATCH New Richard Purdie 1 participant 1 message May 27, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 tests/data: Add log parsing test code

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

bitbake/lib/bb/tests/data.py +24 -0
index 7994a88..b4fd2c5 100644
@@ -24,6 +24,30 @@ import unittest
 import bb
 import bb.data
 import bb.parse
+import logging
+
+class LogRecord():
+    def __enter__(self):
+        logs = []
+        class LogHandler(logging.Handler):
+            def emit(self, record):
+                logs.append(record)
+        logger = logging.getLogger("BitBake")
+        handler = LogHandler()
+        self.handler = handler
+        logger.addHandler(handler)
+        return logs
+    def __exit__(self, type, value, traceback):
+        logger = logging.getLogger("BitBake")
+        logger.removeHandler(self.handler)
+        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):