-
!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"
from html2text import html2text
except ImportError:
html2text = None
+import contextlib
import openerp.loglevels as loglevels
import openerp.pooler as pooler
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: