[Checkins] SVN: z3c.pt/trunk/ Catch name-error in exists-traverser (return false).
Malthe Borch
mborch at gmail.com
Mon Mar 2 04:15:14 EST 2009
Log message for revision 97412:
Catch name-error in exists-traverser (return false).
Changed:
U z3c.pt/trunk/CHANGES.txt
U z3c.pt/trunk/src/z3c/pt/expressions.py
-=-
Modified: z3c.pt/trunk/CHANGES.txt
===================================================================
--- z3c.pt/trunk/CHANGES.txt 2009-03-02 09:02:04 UTC (rev 97411)
+++ z3c.pt/trunk/CHANGES.txt 2009-03-02 09:15:13 UTC (rev 97412)
@@ -3,6 +3,8 @@
In next release
+- Catch ``NameError`` in exists-traverser (return false). [malthe]
+
- Catch ``NameError`` in exists-evaluator (return false). [malthe]
- If the supplied ``context`` and ``request`` parameters are trivial,
Modified: z3c.pt/trunk/src/z3c/pt/expressions.py
===================================================================
--- z3c.pt/trunk/src/z3c/pt/expressions.py 2009-03-02 09:02:04 UTC (rev 97411)
+++ z3c.pt/trunk/src/z3c/pt/expressions.py 2009-03-02 09:15:13 UTC (rev 97412)
@@ -257,6 +257,17 @@
path_traverse = ZopeExistsTraverser()
+ def translate(self, *args, **kwargs):
+ value = super(ExistsTranslator, self).translate(*args, **kwargs)
+ if value is None:
+ return
+
+ assert isinstance(value, types.value)
+ parts = types.parts(
+ (value, types.value('False')))
+ parts.exceptions = NameError,
+ return parts
+
exists_translator = ExistsTranslator()
path_translator = PathTranslator()
provider_translator = ProviderTranslator()
More information about the Checkins
mailing list