Tres Seaver wrote:
> Philipp von Weitershausen wrote:
>>> Log message for revision 68244:
>>> Fix a test that was testing wrong behaviour: primitive types
>>> werent' called if they were the result of a path expression, while
>>> all other callables were called. This tests now tests the correct
>>> behaviour (which happens to be already implemented by the Zope 3
>>> TALES engine)
>>> + assert ec.evaluate('x | python:int') == 0
> Wait a minute -- that isn't a path expression there!
Yes it is. This line could explicitly written as:
assert ec.evaluate('path: x | python:int') == 0
The python: expression is just part of the path expression.
> The '|' is not supposed to change the rules for evaluation of the
It doesn't change the rules for the evaluation of the subexpressions
themselves. But it might easily change the rules of what happens to the
result of the expression afterwards.
> 'int' or the like were somehow avaialbe at module scope, or via
> 'options' or another top-level name, then they should be called *when
> they are the last item in a path expression*.
> The test was actually correct beofore: because tne PathExpression, 'x',
> raises, the PythonExpression, 'int', is evalutated. The result of a
> subexpression is not suppoeed to be called,
No, not the result of a subexpression, but the result of the overall
path expression. That's how it works in both Zope 2 and Zope 3. Zope 2
just special-cases primitive types.
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -