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 · s...@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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to