[Repoze-checkins] r725 - repoze.zope2/trunk/repoze/zope2/tests
Chris McDonough
chrism at agendaless.com
Sat Feb 23 01:02:17 UTC 2008
Author: Chris McDonough <chrism at agendaless.com>
Date: Fri Feb 22 20:02:16 2008
New Revision: 725
Log:
Implement missing tests.
Modified:
repoze.zope2/trunk/repoze/zope2/tests/test_z2bob.py
Modified: repoze.zope2/trunk/repoze/zope2/tests/test_z2bob.py
==============================================================================
--- repoze.zope2/trunk/repoze/zope2/tests/test_z2bob.py (original)
+++ repoze.zope2/trunk/repoze/zope2/tests/test_z2bob.py Fri Feb 22 20:02:16 2008
@@ -300,16 +300,93 @@
self.assertEqual(result, published)
self.assertEqual(published.ofed, True)
- # XXX need more traverse tests
- # - check URLs are reset
- # - check 'traversed' is fixed up
- # - check 'request.roles' is set
- # _getPublishTraverseView variants:
- # - when ob implements IPublishTraverse
- # - when queryMultiAdapter against ((ob, request), IPublishTraverse) doesn't
- # return None
+ def test_traverse_sets_request_roles(self):
+ published = DummyGetitemPublishedObject()
+ foo = DummyPublishedObject()
+ foo.__doc__ = 'hello'
+ foo.__roles__ = ('a', 'b', 'c')
+ published.subs['foo'] = foo
+ published.__allow_groups__ = object()
+ helper = self._makeOne()
+ helper.user_folders = []
+ helper.request.steps = []
+ helper.traverse(published, 'foo')
+ self.assertEqual(helper.request.roles, ('a', 'b', 'c'))
+ def test_traverse_traversed_fixed(self):
+ published = DummyGetitemPublishedObject()
+ foo = DummyPublishedObject()
+ foo.__doc__ = 'hello'
+ published.subs['foo'] = foo
+ published.__allow_groups__ = object()
+ helper = self._makeOne()
+ helper.user_folders = []
+ helper.request.steps = []
+ helper.traverse(published, 'foo')
+ self.assertEqual(helper.traversed, ['foo'])
+ def test_traverse_urls_reset(self):
+ published = DummyGetitemPublishedObject()
+ foo = DummyPublishedObject()
+ foo.__doc__ = 'hello'
+ published.subs['foo'] = foo
+ published.__allow_groups__ = object()
+ helper = self._makeOne()
+ helper.user_folders = []
+ helper.request.steps = []
+ x = []
+ helper.request._resetURLS = lambda *arg: x.append(1)
+ 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')
+
+ def test_traverse_ob_implements_IPublishTraverser(self):
+ from zope.publisher.interfaces import IPublishTraverse
+ from zope.interface import directlyProvides
+ published = DummyGetitemPublishedObject()
+ foo = DummyPublishedObject()
+ directlyProvides(published, IPublishTraverse)
+ x = []
+ published.publishTraverse = lambda *args: x.append(args)
+ foo.__doc__ = 'hello'
+ published.subs['foo'] = foo
+ published.__allow_groups__ = object()
+ helper = self._makeOne()
+ helper.user_folders = []
+ helper.request.steps = []
+ helper.traverse(published, 'foo')
+ self.assertEqual(len(x), 1)
+ xrequest, xname = x[0]
+ self.assertEqual(xrequest, helper.request)
+ self.assertEqual(xname, 'foo')
+
def test_before_invoke_simple(self):
published = DummyPublishedObject()
helper = self._makeOne()
More information about the Repoze-checkins
mailing list