[Zope] problems with testing (PloneMailBoxer)

Dieter Maurer dieter at handshake.de
Sat Jun 25 02:29:23 EDT 2005


robert rottermann wrote at 2005-6-24 05:41 +0200:
> ...
>>>  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')
>>>      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)
>>>    
[DM]
>>It this function returns "None", then "self.getProperty(key)"
>>(among others) must return "None".

>it does not.

It does -- in the failing case.

If you look (carefully) at your code, you see that it can return "None" only
when also "self.getProperty(key)" returns "None".
Some other things, too, have evaluated to some false value, in this case.

To analyse such problems, put "import pdb; pdb.set_trace()"
in the surprising code. The effect will be that the code
enters "pdb" at this line and allows you to single step
through the code and see precisely what goes on.

Of course, you can also use a different debugger...

-- 
Dieter


More information about the Zope mailing list