From 1c33a4174820d3e9613b587ea2c8ad53dc073cb3 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Fri, 11 Jan 2019 14:49:38 +0100 Subject: [PATCH] treat return value of write_ correctly if the return value is 0 or "", and value is different from it, then the behaviour is incorrect. Alternative: we do not allow write_ to return None, and check for it, or even validate the returned value. Change-Id: If7381dd06f7c55bdc4a80981e67f831cd8ee4136 Reviewed-on: https://forge.frm2.tum.de/review/19728 Tested-by: JenkinsCodeReview Reviewed-by: Enrico Faulhaber --- secop/metaclass.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/secop/metaclass.py b/secop/metaclass.py index a20acf8..82e95d2 100644 --- a/secop/metaclass.py +++ b/secop/metaclass.py @@ -170,7 +170,9 @@ class ModuleMeta(type): value = pobj.datatype.validate(value) if wfunc: self.log.debug('calling %r(%r)' % (wfunc, value)) - value = wfunc(self, value) or value + returned_value = wfunc(self, value) + if returned_value is not None: + value = returned_value # XXX: use setattr or direct manipulation # of self.accessibles[pname]? setattr(self, pname, value)