[Zope-dev] Zope Tests: 8 OK

2009-06-20 Thread Zope Tests Summarizer
Summary of messages to the zope-tests list.
Period Fri Jun 19 12:00:00 2009 UTC to Sat Jun 20 12:00:00 2009 UTC.
There were 8 messages: 8 from Zope Tests.


Tests passed OK
---

Subject: OK : Zope-2.10 Python-2.4.6 : Linux
From: Zope Tests
Date: Fri Jun 19 21:12:24 EDT 2009
URL: http://mail.zope.org/pipermail/zope-tests/2009-June/011987.html

Subject: OK : Zope-2.11 Python-2.4.6 : Linux
From: Zope Tests
Date: Fri Jun 19 21:14:26 EDT 2009
URL: http://mail.zope.org/pipermail/zope-tests/2009-June/011988.html

Subject: OK : Zope-trunk Python-2.4.6 : Linux
From: Zope Tests
Date: Fri Jun 19 21:16:30 EDT 2009
URL: http://mail.zope.org/pipermail/zope-tests/2009-June/011989.html

Subject: OK : Zope-trunk Python-2.5.4 : Linux
From: Zope Tests
Date: Fri Jun 19 21:18:31 EDT 2009
URL: http://mail.zope.org/pipermail/zope-tests/2009-June/011990.html

Subject: OK : Zope-trunk Python-2.6.1 : Linux
From: Zope Tests
Date: Fri Jun 19 21:20:39 EDT 2009
URL: http://mail.zope.org/pipermail/zope-tests/2009-June/011991.html

Subject: OK : Zope-trunk-alltests Python-2.4.6 : Linux
From: Zope Tests
Date: Fri Jun 19 21:22:39 EDT 2009
URL: http://mail.zope.org/pipermail/zope-tests/2009-June/011992.html

Subject: OK : Zope-trunk-alltests Python-2.5.4 : Linux
From: Zope Tests
Date: Fri Jun 19 21:24:40 EDT 2009
URL: http://mail.zope.org/pipermail/zope-tests/2009-June/011993.html

Subject: OK : Zope-trunk-alltests Python-2.6.1 : Linux
From: Zope Tests
Date: Fri Jun 19 21:26:40 EDT 2009
URL: http://mail.zope.org/pipermail/zope-tests/2009-June/011994.html

___
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 )


Re: [Zope-dev] [Checkins] SVN: zope.traversing/trunk/src/zope/traversing/ Moved the publicationtraverse module from zope.app.publication and added tests.

2009-06-20 Thread Jim Fulton
Why?  traverseName is part of zope.app.publication's implementation.   
Now it's oddly split off in a very separate package. This makes  
customizing publication behavior more difficult. I recently made  
proxying overridable and missed traverseName.

This should be moved back to zope.app.publication. The only other  
thing that uses this is zope.app.publsher.browser.menu. That can and  
should get to these methods via request.publication.

Or, better yet, traverseRelativeURL and traversePath should be moved  
to the browser module and should get traverseName from  
request.publication.

I'll go ahead and do this.

Jim


On May 22, 2009, at 8:35 PM, Shane Hathaway wrote:

 Log message for revision 100262:
  Moved the publicationtraverse module from zope.app.publication and  
 added tests.


 Changed:
  A   zope.traversing/trunk/src/zope/traversing/publicationtraverse.py
  A   zope.traversing/trunk/src/zope/traversing/tests/ 
 test_publicationtraverse.py

 -=-
 Added: zope.traversing/trunk/src/zope/traversing/ 
 publicationtraverse.py
 ===
 --- zope.traversing/trunk/src/zope/traversing/ 
 publicationtraverse.py(rev 0)
 +++ zope.traversing/trunk/src/zope/traversing/publicationtraverse.py   
 2009-05-23 00:35:46 UTC (rev 100262)
 @@ -0,0 +1,129 @@
 + 
 ##
 +#
 +# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
 +# All Rights Reserved.
 +#
 +# This software is subject to the provisions of the Zope Public  
 License,
 +# Version 2.1 (ZPL).  A copy of the ZPL should accompany this  
 distribution.
 +# THIS SOFTWARE IS PROVIDED AS IS AND ANY AND ALL EXPRESS OR  
 IMPLIED
 +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE  
 IMPLIED
 +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND  
 FITNESS
 +# FOR A PARTICULAR PURPOSE.
 +#
 + 
 ##
 +Publication Traverser
 +
 +$Id: publicationtraverse.py 67630 2006-04-27 00:54:03Z jim $
 +
 +__docformat__ = 'restructuredtext'
 +from types import StringTypes
 +
 +from zope.component import queryMultiAdapter
 +from zope.publisher.interfaces import NotFound
 +from zope.security.checker import ProxyFactory
 +from zope.traversing.namespace import namespaceLookup
 +from zope.traversing.namespace import nsParse
 +from zope.traversing.interfaces import TraversalError
 +from zope.publisher.interfaces import IPublishTraverse
 +from zope.publisher.interfaces.browser import IBrowserPublisher
 +
 +class DuplicateNamespaces(Exception):
 +More than one namespace was specified in a request
 +
 +class UnknownNamespace(Exception):
 +A parameter specified an unknown namespace
 +
 +class PublicationTraverser(object):
 +Traversal used for publication.
 +
 +The significant differences from
 +zope.traversing.adapters.traversePathElement() are:
 +
 +- Instead of adapting each traversed object to ITraversable, this
 +  version multi-adapts (ob, request) to IPublishTraverse.
 +
 +- This version wraps a security proxy around each traversed  
 object.
 +
 +- This version raises NotFound rather than LocationError.
 +
 +- This version has a method, traverseRelativeURL(), that
 +  supports browserDefault traversal.
 +
 +
 +def traverseName(self, request, ob, name):
 +nm = name # the name to look up the object with
 +
 +if name and name[:1] in '@+':
 +# Process URI segment parameters.
 +ns, nm = nsParse(name)
 +if ns:
 +try:
 +ob2 = namespaceLookup(ns, nm, ob, request)
 +except TraversalError:
 +raise NotFound(ob, name)
 +
 +return ProxyFactory(ob2)
 +
 +if nm == '.':
 +return ob
 +
 +if IPublishTraverse.providedBy(ob):
 +ob2 = ob.publishTraverse(request, nm)
 +else:
 +# self is marker
 +adapter = queryMultiAdapter((ob, request),  
 IPublishTraverse,
 +default=self)
 +if adapter is not self:
 +ob2 = adapter.publishTraverse(request, nm)
 +else:
 +raise NotFound(ob, name, request)
 +
 +return ProxyFactory(ob2)
 +
 +def traversePath(self, request, ob, path):
 +
 +if isinstance(path, StringTypes):
 +path = path.split('/')
 +if len(path)  1 and not path[-1]:
 +# Remove trailing slash
 +path.pop()
 +else:
 +path = list(path)
 +
 +# Remove single dots
 +path = [x for x in path if x != '.']
 +
 +path.reverse()
 +
 +# Remove double dots
 +while '..' in path:
 +l = path.index('..')
 +if l  0 or l+2  len(path):
 +  

Re: [Zope-dev] [Checkins] SVN: zope.traversing/trunk/src/zope/traversing/ Moved the publicationtraverse module from zope.app.publication and added tests.

2009-06-20 Thread Shane Hathaway
Jim Fulton wrote:
 Why?  traverseName is part of zope.app.publication's implementation.   
 Now it's oddly split off in a very separate package.

The publisher traversal code is very similar to the code in
zope.traversing, so I thought the best thing to do is put it in the same
package as zope.traversing, so that traversal would be maintained in one
place.

 Or, better yet, traverseRelativeURL and traversePath should be moved  
 to the browser module and should get traverseName from  
 request.publication.
 
 I'll go ahead and do this.

That's fine.

Shane
___
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 )