thanks Dieter, Dieter Maurer wrote:
robert rottermann wrote at 2005-6-23 09:16 +0200:
... Calling the method in a test case I allways get None. ... security.declareProtected('Access contents information', 'getValueFor') def getValueFor(self, key): # Returns value for property; # if available, a dynamic getter will be used
# we can not use MailBoxers getValueFor since # it does not work with skin elements on the FS getter = self.getProperty('getter')
I expect that your mail composer distorted indentation in the line above.
As it stands here, it is a SyntaxError.
if getter: getterHandler = self.unrestrictedTraverse(getter, default=None) if getterHandler is not None: try: result = getterHandler(key) if result is not None: return result except: pass
# Our stored properties are the default return self.getProperty(key)
It this function returns "None", then "self.getProperty(key)" (among others) must return "None".
it does not. I checked I returns the name of an a "skinned" python script on the FS
If "unrestrictedTraverse" returns "None", remove the "default=" argument an look at the resulting exception...
It complains that it does not find the objekt. This means that in the testing environment the skind element is not found. In the "real" enviroment however it is. But why? Robert