[Checkins] SVN: z3c.breadcrumb/trunk/src/z3c/breadcrumb/ * test
coverage 100%
Nikolay Kim
fafhrd at datacom.kz
Tue Dec 11 13:00:44 EST 2007
Log message for revision 82255:
* test coverage 100%
* register default IBreadcrumbs adapter
* default IBreadcrumbs stops only on virtual host root, not on ISite object
Changed:
U z3c.breadcrumb/trunk/src/z3c/breadcrumb/README.txt
U z3c.breadcrumb/trunk/src/z3c/breadcrumb/browser.py
U z3c.breadcrumb/trunk/src/z3c/breadcrumb/configure.zcml
U z3c.breadcrumb/trunk/src/z3c/breadcrumb/tests.py
-=-
Modified: z3c.breadcrumb/trunk/src/z3c/breadcrumb/README.txt
===================================================================
--- z3c.breadcrumb/trunk/src/z3c/breadcrumb/README.txt 2007-12-11 15:49:50 UTC (rev 82254)
+++ z3c.breadcrumb/trunk/src/z3c/breadcrumb/README.txt 2007-12-11 18:00:44 UTC (rev 82255)
@@ -115,3 +115,18 @@
{'url': 'http://127.0.0.1/office',
'activeURL': True,
'name': u'Zope Foundation'}]
+
+ >>> breadcrumb.__parent__ is office
+ True
+
+Default breadcrumbs stops on virtual host root
+
+ >>> request._vh_root = office
+ >>> list(breadcrumb.crumbs)
+ [{'url': 'http://127.0.0.1', 'activeURL': True, 'name': u'Zope Foundation'}]
+
+
+Actually i don't understand what is this for? Stephan, Roger?
+
+ >>> browser.CustomNameBreadcrumb('office')
+ <class 'z3c.breadcrumb.browser.CustomNameBreadcrumb('office')'>
Modified: z3c.breadcrumb/trunk/src/z3c/breadcrumb/browser.py
===================================================================
--- z3c.breadcrumb/trunk/src/z3c/breadcrumb/browser.py 2007-12-11 15:49:50 UTC (rev 82254)
+++ z3c.breadcrumb/trunk/src/z3c/breadcrumb/browser.py 2007-12-11 18:00:44 UTC (rev 82255)
@@ -21,6 +21,7 @@
import zope.location
import zope.traversing.api
import zope.traversing.browser
+from zope.proxy import sameProxiedObjects
from zope.publisher.interfaces import NotFound
from zope.publisher import browser
from zope.publisher.interfaces.http import IHTTPRequest
@@ -32,13 +33,13 @@
class Breadcrumbs(zope.location.Location):
"""Breadcrumbs implementation using IBreadcrum adapters."""
-
zope.interface.implements(interfaces.IBreadcrumbs)
zope.component.adapts(zope.interface.Interface, IHTTPRequest)
def __init__(self, context, request):
self.context = context
self.request = request
+ self.__parent__ = context
def __getParent(self):
return getattr(self, '_parent', self.context)
@@ -50,16 +51,20 @@
@property
def crumbs(self):
+ request = self.request
+
objects = []
for obj in ( [self.context] +
list(zope.traversing.api.getParents(self.context)) ):
objects.append(obj)
- if ISite.providedBy(obj):
+ if sameProxiedObjects(obj, request.getVirtualHostRoot()) or \
+ isinstance(obj, Exception):
break
+
objects.reverse()
for object in objects:
- info = zope.component.getMultiAdapter((object, self.request),
- interfaces.IBreadcrumb)
+ info = zope.component.getMultiAdapter(
+ (object, self.request), interfaces.IBreadcrumb)
yield {'name': info.name,
'url': info.url,
'activeURL': info.activeURL}
@@ -80,10 +85,10 @@
@property
def name(self):
"""See interfaces.IBreadcrumb"""
- name = getattr(self.context, 'title', None)
- if name is None:
- name = getattr(self.context, '__name__', None)
- if name is None and IContainmentRoot.providedBy(self.context):
+ name = getattr(self.context, 'title', '')
+ if not name:
+ name = getattr(self.context, '__name__', '')
+ if not name and IContainmentRoot.providedBy(self.context):
name = 'top'
return name
Modified: z3c.breadcrumb/trunk/src/z3c/breadcrumb/configure.zcml
===================================================================
--- z3c.breadcrumb/trunk/src/z3c/breadcrumb/configure.zcml 2007-12-11 15:49:50 UTC (rev 82254)
+++ z3c.breadcrumb/trunk/src/z3c/breadcrumb/configure.zcml 2007-12-11 18:00:44 UTC (rev 82255)
@@ -3,9 +3,17 @@
<!-- Generic IBreadcrumb adapter -->
<adapter
- factory="z3c.breadcrumb.browser.GenericBreadcrumb"
- trusted="true"
- permission="zope.Public"
- />
+ factory="z3c.breadcrumb.browser.GenericBreadcrumb"
+ trusted="true"
+ permission="zope.Public"
+ />
+ <!-- Generic IBreadcrumbs adapter -->
+ <adapter
+ factory="z3c.breadcrumb.browser.Breadcrumbs"
+ provides="z3c.breadcrumb.interfaces.IBreadcrumbs"
+ trusted="true"
+ permission="zope.Public"
+ />
+
</configure>
Modified: z3c.breadcrumb/trunk/src/z3c/breadcrumb/tests.py
===================================================================
--- z3c.breadcrumb/trunk/src/z3c/breadcrumb/tests.py 2007-12-11 15:49:50 UTC (rev 82254)
+++ z3c.breadcrumb/trunk/src/z3c/breadcrumb/tests.py 2007-12-11 18:00:44 UTC (rev 82255)
@@ -16,9 +16,7 @@
"""
__docformat__ = 'restructuredtext'
-import unittest
-from zope.testing import doctest
-from zope.testing.doctestunit import DocFileSuite
+import unittest, doctest
from zope.app.testing import setup
from zope.app.testing import placelesssetup
@@ -27,17 +25,14 @@
site = setup.placefulSetUp(site=True)
test.globs['rootFolder'] = site
-
def tearDown(test):
setup.placefulTearDown()
def test_suite():
return unittest.TestSuite((
- DocFileSuite('README.txt',
- setUp=setUp, tearDown=tearDown,
- optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
- ))
-
-if __name__ == '__main__':
- unittest.main(defaultTest='test_suite')
+ doctest.DocFileSuite(
+ 'README.txt',
+ setUp=setUp, tearDown=tearDown,
+ optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
+ ))
More information about the Checkins
mailing list