]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
bitbake: tests/data: Add log parsing test code
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 27 May 2015 16:33:16 +0000 (17:33 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 29 May 2015 09:17:16 +0000 (10:17 +0100)
This allows us to write tests which ensure a particular action generates
a particular log message.

(Bitbake rev: b30ee0aba51a35a194a4338b988f93ece1ed281c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/tests/data.py

index 7994a88a781d7d79ee0d58e2d08eca82d58f5709..b4e90e03271e0ed463e701ed59821ebe53cc1e32 100644 (file)
@@ -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):
@@ -301,7 +325,6 @@ class TestOverrides(unittest.TestCase):
         bb.data.update_data(self.d)
         self.assertEqual(self.d.getVar("TEST", True), "testvalue3")
 
-
 class TestFlags(unittest.TestCase):
     def setUp(self):
         self.d = bb.data.init()