From 0c32cb49366af443f520cd4e5f10a6cdb798b0ad Mon Sep 17 00:00:00 2001 From: Xavier ALT Date: Wed, 23 May 2012 14:53:54 +0200 Subject: [PATCH] [FIX] config: when assigning new value, ensure that value are correctly type checked This make configmanager stronger about config params values (if we need to enforce them as int, float, ...). Helping gunicorn user's to not set wrong value, like: conf['cpu_time_limit'] = '180' In that case, type checker will gracefully convert it to interger. bzr revid: xal@openerp.com-20120523125354-jr6lgpecjyqrmaz3 --- openerp/tools/config.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 8300d6eabf3..c6399db3207 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -624,6 +624,8 @@ class configmanager(object): def __setitem__(self, key, value): self.options[key] = value + if isinstance(self.options[key], basestring) and self.casts[key].type in optparse.Option.TYPE_CHECKER: + self.options[key] = optparse.Option.TYPE_CHECKER[self.casts[key].type](self.casts[key], key, self.options[key]) def __getitem__(self, key): return self.options[key]