On Fri, Oct 10, 2008 at 06:19:48PM +0200, Roger Ineichen wrote: > Hi Tim > > > Betreff: Re: AW: [Zope3-Users] WrongContainedType > > > > On Fri, 2008-10-10 at 17:46 +0200, Roger Ineichen wrote: > > > > > I guess not, normaly such an error has an empty > > representation and the > > > list is not empty. Try to do errors[0] or type(errors[0]) and you > > > probably see something. > > > > > > If not I'm confused > > > > Well, I'm confused anyway, but that isn't difficult. ;-) > > > > After commenting the the if test on errors and the raise. > > > > With print 'Object schema validation errors=',type(errors[0]): > > I get: > > Object schema validation errors= > > <class'zope.schema._bootstrapinterfaces.RequiredMissing'> > > Object schema validation errors= > > <class'zope.schema._bootstrapinterfaces.RequiredMissing'> > > > > With print 'Object schema validation errors=',errors[0]: > > I get: > > just the string Object schema validation errors= printed on each line. > > > > With print 'Object schema validation errors=',errors: > > I get: > > Object schema validation errors= [] > > Object schema validation errors= []
That's because RequiredMissing subclasses ValidationError, which defines
def __repr__(self):
return ' '.join(map(str, self.args))
That's bad code! No cookie! If you do
print [RequiredMissing()]
you will see
[]
which is not distinguishable from an empty list.
Things to fix:
* ValidationError's __repr__ should consider the corner case when
self.args is empty and return, say, self.__doc__.
* the piece of code that raises RequiredMissing should always supply
some arguments (at the very least, the name of the field with the
missing value)
> The error (probably, not sure) means that the object you
> like to store has a missing value. Can you check the
> schema of this object and set required=False in all fields?
>
> If there is a problem, can you post the interface and class
> of this object as a sample? And probably the code which
> tries to store the object.
That is the correct path to fixing Tim's problem, but I think we should
fix Zope as well.
Marius Gedminas
--
I used to be an agnostic, but now I'm not so sure.
signature.asc
Description: Digital signature
_______________________________________________ Zope3-users mailing list [email protected] http://mail.zope.org/mailman/listinfo/zope3-users
