[IMP] remove unwanted log in test
authorChristophe Simonis <chs@openerp.com>
Wed, 22 Aug 2012 11:06:04 +0000 (13:06 +0200)
committerChristophe Simonis <chs@openerp.com>
Wed, 22 Aug 2012 11:06:04 +0000 (13:06 +0200)
bzr revid: chs@openerp.com-20120822110604-il0sxlvf592wasur

openerp/addons/base/test/base_test.yml
openerp/tools/misc.py

index fe22e3a..1aea236 100644 (file)
 -
     !python {model: ir.model}: |
         from tools.safe_eval import safe_eval
+        from tools.misc import mute_logger
         try:
-           safe_eval('open("/etc/passwd","r")')
-           assert False, "safe_eval should not allow calling open() builtin"
+            with mute_logger('openerp.tools.safe_eval'):
+                safe_eval('open("/etc/passwd","r")')
+            assert False, "safe_eval should not allow calling open() builtin"
         except NameError:
-           pass
-        except:
-           # NameError should be raised because open() builtin is not found,
-           # but other exceptions probably indicate that open() was executed!
-           assert False, "safe_eval should not allow calling open() builtin"
+            pass
 
 -
     "ORM test: verify that parent_store computation are going right"
index e90fadf..20f6965 100644 (file)
@@ -55,6 +55,7 @@ try:
     from html2text import html2text
 except ImportError:
     html2text = None
+import contextlib
 
 import openerp.loglevels as loglevels
 import openerp.pooler as pooler
@@ -1140,4 +1141,20 @@ class UnquoteEvalContext(defaultdict):
     def __missing__(self, key):
         return unquote(key)
 
+
+class MuteFilter(logging.Filter):
+    def filter(self, record):
+        return 0
+
+@contextlib.contextmanager
+def mute_logger(*loggers):
+    mute = MuteFilter()
+    for logger in loggers:
+        logging.getLogger(logger).addFilter(mute)
+
+    yield
+
+    for logger in loggers:
+        logging.getLogger(logger).removeFilter(mute)
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: