Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Zope: Dev
zope.formlib does not correctly validate invariants with fields from a base interface
 

Index | Next | Previous | View Flat


sw at gocept

Jun 2, 2009, 5:05 AM


Views: 315
Permalink
zope.formlib does not correctly validate invariants with fields from a base interface

Hi,

I'd like to fix the following bug: https://bugs.launchpad.net/zope2/+bug/382717

Example:

>>> import zope.interface
>>> import zope.schema

>>> class IBase(zope.interface.Interface):
... title = zope.schema.TextLine(
... title=u"Title",
... required=False)

>>> class ISub(IBase):
... sub_title = zope.schema.TextLine(
... title=u"Subtitle",
... required=False)
...
... @zope.interface.invariant
... def title_or_subtitle(obj):
... if not (obj.title or obj.sub_title):
... raise zope.interface.Invalid(
... u"Set either title or subtitle.")

When validating an object (using zope.formlib.form.checkInvariants),
which implements ISub, it's not possible to access the title attribute
inside the "title_or_subtitle" invariant checker method. It's
explicitly filtered out, which means, that only those schema
attributes, defined on the ISub interface, are available.

Is there any reason for this behavior? There is no test for this
behavior.

Suggestion:

If there is no specific reason for this behavior, the invariant should
get all the form field data from the request.

Best regards,

--
Sebastian Wehrmann · sw[at]gocept.com
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 12 · fax +49 345 1229889 1
Zope and Plone consulting and development
Attachments: smime.p7s (2.37 KB)

Subject User Time
zope.formlib does not correctly validate invariants with fields from a base interface sw at gocept Jun 2, 2009, 5:05 AM
    Re: zope.formlib does not correctly validate invariants with fields from a base interface sw at gocept Jun 2, 2009, 6:42 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.