Christian Theune wrote at 2008-10-15 17:42 +0200:
>we stumbled over an annoyance that took a while to debug:
>
>Writing an ITraversable, we used zope.traversing.api.traverse() in a
>test to verify our code. We registered the ITraversable as an
>(non-multi) adapter and ended up with a working test.
>
>In the actual system, we found that the traversable would not be used.
>After investigation we found a conditional branch in the traverse()
>function which would look for a multi-adapter if a request was around,
>and a regular adapter if not.
>
>We didn't anticipate this difference and it cost us some time, so we
>wonder whether this has to be the way it is, or whether this could be
>changed to behave more obvious and consistent.

The request may have important information to control traversal, e.g.
a layer. On the other hand, when no request is available (e.g. in a
script), you cannot use one. Thus, the current behaviour may cover
useful use cases.

Maybe, you should not trust your tests stupidly -- unless they emulate
the actual system sufficently ;-)



-- 
Dieter
_______________________________________________
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