[Repoze-checkins] r983 - in repoze.zope2/branches/2.9/repoze/zope2: . tests
Chris McDonough
chrism at agendaless.com
Wed May 7 11:39:21 EDT 2008
Author: Chris McDonough <chrism at agendaless.com>
Date: Wed May 7 11:39:20 2008
New Revision: 983
Log:
Merge trunk rev 982 (support 2.9) into 2.9 branch.
Modified:
repoze.zope2/branches/2.9/repoze/zope2/publishtraverse.py
repoze.zope2/branches/2.9/repoze/zope2/tests/base.py
repoze.zope2/branches/2.9/repoze/zope2/tests/test_publishtraverse.py
repoze.zope2/branches/2.9/repoze/zope2/tests/test_z2bob.py
repoze.zope2/branches/2.9/repoze/zope2/z2bob.py
Modified: repoze.zope2/branches/2.9/repoze/zope2/publishtraverse.py
==============================================================================
--- repoze.zope2/branches/2.9/repoze/zope2/publishtraverse.py (original)
+++ repoze.zope2/branches/2.9/repoze/zope2/publishtraverse.py Wed May 7 11:39:20 2008
@@ -23,7 +23,15 @@
from zope.interface import Interface
from zope.publisher.interfaces.browser import IBrowserPublisher
-from zope.traversing.interfaces import TraversalError
+_BETTER_THAN_210 = True
+
+try:
+ # Zope 2.10+
+ from zope.traversing.interfaces import TraversalError
+except ImportError:
+ # 2.9
+ from zope.app.traversing.interfaces import TraversalError
+ _BETTER_THAN_210 = False
from zope.app.publisher.browser import queryDefaultViewName
@@ -152,14 +160,19 @@
def browserDefault(self, request):
if hasattr(self.context, '__browser_default__'):
return self.context.__browser_default__(request)
- # Zope 3.2 still uses IDefaultView name when it
- # registeres default views, even though it's
- # deprecated. So we handle that here:
- default_name = queryDefaultViewName(self.context, request)
- if default_name is not None:
- # Adding '@@' here forces this to be a view.
- # A neater solution might be desireable.
- return self.context, ('@@' + default_name,)
+ if _BETTER_THAN_210:
+ # The 2.9 publisher doesn't do this dance (and breaks
+ # when it is done), so we only do this if we're running
+ # under 2.10 or better.
+
+ # Zope 3.2 still uses IDefaultView name when it
+ # registeres default views, even though it's
+ # deprecated. So we handle that here:
+ default_name = queryDefaultViewName(self.context, request)
+ if default_name is not None:
+ # Adding '@@' here forces this to be a view.
+ # A neater solution might be desireable.
+ return self.context, ('@@' + default_name,)
return self.context, ()
# This mapping contains the built-in types that gained docstrings
Modified: repoze.zope2/branches/2.9/repoze/zope2/tests/base.py
==============================================================================
--- repoze.zope2/branches/2.9/repoze/zope2/tests/base.py (original)
+++ repoze.zope2/branches/2.9/repoze/zope2/tests/base.py Wed May 7 11:39:20 2008
@@ -14,6 +14,16 @@
from StringIO import StringIO
+_BETTER_THAN_210 = True
+
+try:
+ # Zope 2.10+
+ from zope.traversing.interfaces import TraversalError
+except ImportError:
+ # 2.9
+ from zope.app.traversing.interfaces import TraversalError
+ _BETTER_THAN_210 = False
+
class DummyResponse:
unauth_called = False
urls_reset = False
Modified: repoze.zope2/branches/2.9/repoze/zope2/tests/test_publishtraverse.py
==============================================================================
--- repoze.zope2/branches/2.9/repoze/zope2/tests/test_publishtraverse.py (original)
+++ repoze.zope2/branches/2.9/repoze/zope2/tests/test_publishtraverse.py Wed May 7 11:39:20 2008
@@ -86,7 +86,10 @@
context = DummyBoboTraversePublishedObject()
request = DummyRequest({'URL':'http://www.example.com'})
dpt = self._makeOne(context, request)
- from zope.traversing.interfaces import TraversalError
+ try:
+ from zope.traversing.interfaces import TraversalError
+ except ImportError:
+ from zope.app.traversing.interfaces import TraversalError
self.assertRaises(TraversalError, dpt.publishTraverse, request, 'hi')
def test_publishTraverse_getattr(self):
@@ -102,7 +105,10 @@
context = DummyPublishedObject()
request = DummyRequest({'URL':'http://www.example.com'})
dpt = self._makeOne(context, request)
- from zope.traversing.interfaces import TraversalError
+ try:
+ from zope.traversing.interfaces import TraversalError
+ except ImportError:
+ from zope.app.traversing.interfaces import TraversalError
self.assertRaises(TraversalError, dpt.publishTraverse, request, 'hi')
def test_publishTraverse_returns_null_resource_when_no_trns(self):
Modified: repoze.zope2/branches/2.9/repoze/zope2/tests/test_z2bob.py
==============================================================================
--- repoze.zope2/branches/2.9/repoze/zope2/tests/test_z2bob.py (original)
+++ repoze.zope2/branches/2.9/repoze/zope2/tests/test_z2bob.py Wed May 7 11:39:20 2008
@@ -31,6 +31,7 @@
from repoze.zope2.tests.base import DummyPublishedObjectWithCallRoles
from repoze.zope2.tests.base import DummyPermissiveUserFolder
from repoze.zope2.tests.base import DummyNoPermissionsUserFolder
+from repoze.zope2.tests.base import _BETTER_THAN_210
class TestTopLevelFuncs(unittest.TestCase):
def test_get_root_initialized(self):
@@ -469,7 +470,10 @@
self.request = request
def traverse(self, name, remaining):
return OfObj()
- from zope.traversing.interfaces import ITraversable
+ try:
+ from zope.traversing.interfaces import ITraversable
+ except ImportError:
+ from zope.app.traversing.interfaces import ITraversable
ztapi.browserView(None, 'view', View, providing=ITraversable)
result = helper.traverse(published, '@@thistestiswaywaytoohardtowrite')
self.assertEqual(result, published)
@@ -492,7 +496,10 @@
self.request = request
def traverse(self, name, remaining):
return OfObj()
- from zope.traversing.interfaces import ITraversable
+ try:
+ from zope.traversing.interfaces import ITraversable
+ except ImportError:
+ from zope.app.traversing.interfaces import ITraversable
ztapi.browserView(None, 'view', View, providing=ITraversable)
result = helper.traverse(published, '@@thistestiswaywaytoohardtowrite')
self.assertEqual(result, browserdefault)
@@ -537,33 +544,36 @@
helper.traverse(published, 'foo')
self.assertEqual(x, [1])
- def test_traverse_ob_has_IPublishTraverse_multiadapter(self):
- from zope.publisher.interfaces import IPublishTraverse
- from zope.interface import implements
- x = []
- class DummyPublishTraverse:
- implements(IPublishTraverse)
- def __init__(self, context, request):
- pass
- def publishTraverse(self, request, name):
- x.append(request)
- x.append(name)
- published = DummyGetitemPublishedObject()
- ztapi.browserViewProviding(None, DummyPublishTraverse,
- layer=None,
- providing=IPublishTraverse)
- foo = DummyPublishedObject()
- foo.__doc__ = 'hello'
- published.subs['foo'] = foo
- published.__allow_groups__ = object()
- helper = self._makeOne()
- helper.user_folders = []
- helper.request.steps = []
- x = []
- helper.traverse(published, 'foo')
- self.assertEqual(len(x), 2)
- self.assertEqual(x[0], helper.request)
- self.assertEqual(x[1], 'foo')
+ if _BETTER_THAN_210:
+ # I can't make ztapi.browserViewProviding register the correct
+ # stuff under 2.9 (CM)
+ def test_traverse_ob_has_IPublishTraverse_multiadapter(self):
+ from zope.publisher.interfaces import IPublishTraverse
+ from zope.interface import implements
+ x = []
+ class DummyPublishTraverse:
+ implements(IPublishTraverse)
+ def __init__(self, context, request):
+ pass
+ def publishTraverse(self, request, name):
+ x.append(request)
+ x.append(name)
+ published = DummyGetitemPublishedObject()
+ ztapi.browserViewProviding(None, DummyPublishTraverse,
+ layer=None,
+ providing=IPublishTraverse)
+ foo = DummyPublishedObject()
+ foo.__doc__ = 'hello'
+ published.subs['foo'] = foo
+ published.__allow_groups__ = object()
+ helper = self._makeOne()
+ helper.user_folders = []
+ helper.request.steps = []
+ x = []
+ helper.traverse(published, 'foo')
+ self.assertEqual(len(x), 2)
+ self.assertEqual(x[0], helper.request)
+ self.assertEqual(x[1], 'foo')
def test_traverse_ob_implements_IPublishTraverser(self):
from zope.publisher.interfaces import IPublishTraverse
Modified: repoze.zope2/branches/2.9/repoze/zope2/z2bob.py
==============================================================================
--- repoze.zope2/branches/2.9/repoze/zope2/z2bob.py (original)
+++ repoze.zope2/branches/2.9/repoze/zope2/z2bob.py Wed May 7 11:39:20 2008
@@ -30,14 +30,35 @@
from zope.publisher.interfaces import IPublishTraverse
from zope.publisher.interfaces.browser import IBrowserPublisher
-from zope.publisher.browser import setDefaultSkin
+try:
+ # 2.10+
+ from zope.publisher.browser import setDefaultSkin
+except ImportError:
+ # 2.9
+ from zope.app.publication.browser import setDefaultSkin
from zope.security.management import newInteraction
from zope.security.management import endInteraction
-from zope.traversing.namespace import nsParse
-from zope.traversing.namespace import namespaceLookup
-from zope.traversing.interfaces import TraversalError
+try:
+ # 2.10+
+ from zope.traversing.namespace import nsParse
+except ImportError:
+ # 2.9
+ from zope.app.traversing.namespace import nsParse
+
+try:
+ # 2.10+
+ from zope.traversing.namespace import namespaceLookup
+except ImportError:
+ from zope.app.traversing.namespace import namespaceLookup
+
+try:
+ # 2.10 +
+ from zope.traversing.interfaces import TraversalError
+except ImportError:
+ # 2.9
+ from zope.app.traversing.interfaces import TraversalError
from AccessControl.ZopeSecurityPolicy import getRoles
from AccessControl.SecurityManagement import newSecurityManager
More information about the Repoze-checkins
mailing list