[Zope-dev] Re: SVN: Zope/branches/ajung-zpt-end-game/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py A recent fix in the zope 3 traversing code now requires the ITraversable

Philipp von Weitershausen philipp at weitershausen.de
Mon May 29 04:28:48 EDT 2006


Tres Seaver wrote:
> Philipp von Weitershausen wrote:
> 
>>> Log message for revision 68328:
>>>   A recent fix in the zope 3 traversing code now requires the ITraversable
>>>   adapter to be present even when traversing just dicts. No problem, we can
>>>   set it up quite easily.
>>>   
>>>   This basically finishes this branch. All tests pass, some 3rd party apps
>>>   have been tested with it. There are a few test failures in the CMF and
>>>   others (e.g. Plone), but that's mostly "their fault" (incorrect or
>>>   unexpected usage of certain things).
> 
> Those are BBB fouls, as those failures do not emit deprecation warnings
> when run against 2.9.  In fact, none of the deprecation warnings which
> are raised when running the CMF 2.0 tests under 2.9 allow for failures
> under 2.10.
> 
> The failrures are mostly instances of:
> 
>   - The "empty path element" exception.  Zope3's choice to make that an
>     error is undefended, AFAIK (Fred never replied to your query about
>     the reason), and needs BBB in any case.

Right, Fred didn't reply, but we managed to have a little chat. After
this I replied to your email:
http://mail.zope.org/pipermail/zope-dev/2006-May/027493.html

Basically:

* we hardly see a use case for empty path elements. They don't work
right now, at least not in the way that you expected them to work. So,
we're not really breaking anything if we take away something that didn't
work in the first place.

* AFAIK the CMF tries to compile empty TALES expessions (I don't know
yet whether only in tests or also in "real" code, Hanno Schlichting has
been testing my branch against the CMF in the past days). This isn't a
use case either. It's just misguided usage, as I would call it (Fred
agrees). We can fix the CMF to simply not compile empty TALES expressions.

>   - CMFDefault/skin/configure.zcml blows up because the syntax of the
>     'browser:skin' directive has changed in a BBB-incompatible way.  The
>     now-failing directive is::
> 
>      <browser:skin
>         name="cmf"
>         layers="cmf default"
>         />
> 
>     and the traceback is *very* weird::
> 
>       ZopeXMLConfigurationError: File \
>         "/tmp/endgame/Products/CMFDefault/skin/configure.zcml", line \
>         10.2-13.8
>       ConfigurationError: ('Invalid value for', 'layers', "ImportError:\
>        Couldn't import default, No module named default in cmf default")

Ah yes. This is due to a missing ZCML declaration in Five. I already
fixed it on the Five trunk
(http://mail.zope.org/pipermail/checkins/2006-May/001859.html), but the
zpt branch is a bit too old to have this fix. That's why it works fine
on the Zope trunk but not on the zpt branch.

>   - "No traversable adapter found" raised out of
>     'boboAwareZopeTraverse'.  This one is likely due to the prior
>     ZCML issue, which blows out ZCML processing early.

Very likely. The correct traversable adapter is set up when you load
Five/traversing.zcml or zope.traversing/configure.zcml. If the ZCML
machinery doesn't get far enough, you don't have the adapter.

Philipp



More information about the Zope-Dev mailing list