[Checkins] SVN: z3c.bobopublisher/trunk/ Removed dependency on zope.browser, defining a z3c.bobpublisher-specific IBrowserPage interface.
Fabio Tranchitella
kobold at kobold.it
Sun Aug 23 04:21:14 EDT 2009
Log message for revision 103095:
Removed dependency on zope.browser, defining a z3c.bobpublisher-specific IBrowserPage interface.
Changed:
U z3c.bobopublisher/trunk/CHANGES.txt
U z3c.bobopublisher/trunk/setup.py
U z3c.bobopublisher/trunk/src/z3c/bobopublisher/README.txt
U z3c.bobopublisher/trunk/src/z3c/bobopublisher/browser.py
U z3c.bobopublisher/trunk/src/z3c/bobopublisher/interfaces.py
U z3c.bobopublisher/trunk/src/z3c/bobopublisher/publication.py
U z3c.bobopublisher/trunk/src/z3c/bobopublisher/tests.py
-=-
Modified: z3c.bobopublisher/trunk/CHANGES.txt
===================================================================
--- z3c.bobopublisher/trunk/CHANGES.txt 2009-08-22 22:00:30 UTC (rev 103094)
+++ z3c.bobopublisher/trunk/CHANGES.txt 2009-08-23 08:21:13 UTC (rev 103095)
@@ -1,10 +1,11 @@
CHANGES
=======
-0.1.4 (unreleased)
+0.1.4 (2009-08-23)
------------------
-- ...
+- Removed dependency on zope.browser, defining a z3c.bobpublisher-specific
+ IBrowserPage interface.
0.1.3 (2009-08-22)
------------------
Modified: z3c.bobopublisher/trunk/setup.py
===================================================================
--- z3c.bobopublisher/trunk/setup.py 2009-08-22 22:00:30 UTC (rev 103094)
+++ z3c.bobopublisher/trunk/setup.py 2009-08-23 08:21:13 UTC (rev 103095)
@@ -2,7 +2,7 @@
setup(
name='z3c.bobopublisher',
- version='0.1.4dev',
+ version='0.1.4',
url='http://pypi.python.org/pypi/z3c.bobopublisher',
license='ZPL 2.1',
author='Fabio Tranchitella',
@@ -24,7 +24,6 @@
'bobo',
'WebOb',
'z3c.request',
- 'zope.browser',
'zope.component',
'zope.configuration',
'zope.dottedname',
Modified: z3c.bobopublisher/trunk/src/z3c/bobopublisher/README.txt
===================================================================
--- z3c.bobopublisher/trunk/src/z3c/bobopublisher/README.txt 2009-08-22 22:00:30 UTC (rev 103094)
+++ z3c.bobopublisher/trunk/src/z3c/bobopublisher/README.txt 2009-08-23 08:21:13 UTC (rev 103095)
@@ -85,11 +85,10 @@
Browser pages are named multi-adapters which adapt the context object and the
request; we register a browser page for the root object:
- >>> from z3c.bobopublisher.interfaces import IRequest
- >>> from zope.browser.interfaces import IBrowserView
+ >>> from z3c.bobopublisher.interfaces import IRequest, IBrowserPage
>>> class BrowserPage(object):
... adapts(IRoot, IRequest)
- ... implements(IBrowserView)
+ ... implements(IBrowserPage)
... def __init__(self, context, request):
... self.context = context
... self.request = request
@@ -107,7 +106,7 @@
>>> from z3c.bobopublisher.interfaces import IDELETERequest
>>> class BrowserPageDelete(object):
... adapts(IRoot, IDELETERequest)
- ... implements(IBrowserView)
+ ... implements(IBrowserPage)
... def __init__(self, context, request):
... self.context = context
... self.request = request
@@ -135,11 +134,9 @@
We register a browser page for the sub-item:
- >>> from z3c.bobopublisher.interfaces import IRequest
- >>> from zope.browser.interfaces import IBrowserView
>>> class SubItemBrowserPage(object):
... adapts(ISubItem, IRequest)
- ... implements(IBrowserView)
+ ... implements(IBrowserPage)
... def __init__(self, context, request):
... self.context = context
... self.request = request
Modified: z3c.bobopublisher/trunk/src/z3c/bobopublisher/browser.py
===================================================================
--- z3c.bobopublisher/trunk/src/z3c/bobopublisher/browser.py 2009-08-22 22:00:30 UTC (rev 103094)
+++ z3c.bobopublisher/trunk/src/z3c/bobopublisher/browser.py 2009-08-23 08:21:13 UTC (rev 103095)
@@ -16,15 +16,31 @@
$Id$
"""
-from zope.browser.interfaces import IBrowserView
+from z3c.bobopublisher.interfaces import IBrowserPage
+
from zope.interface import implements
class BrowserPage(object):
- """Simple browser page"""
+ """Base class for browser pages
- implements(IBrowserView)
+ Verify that the class implements the interfaces:
+ >>> from zope.interface.verify import verifyClass
+ >>> verifyClass(IBrowserPage, BrowserPage)
+ True
+
+ Verify that the object provides the interfaces:
+
+ >>> from zope.interface.verify import verifyObject
+ >>> obj = BrowserPage(None, None)
+ >>> verifyObject(IBrowserPage, obj)
+ True
+
+ """
+
+ implements(IBrowserPage)
+
def __init__(self, context, request, attribute=None):
self.context = context
self.request = request
Modified: z3c.bobopublisher/trunk/src/z3c/bobopublisher/interfaces.py
===================================================================
--- z3c.bobopublisher/trunk/src/z3c/bobopublisher/interfaces.py 2009-08-22 22:00:30 UTC (rev 103094)
+++ z3c.bobopublisher/trunk/src/z3c/bobopublisher/interfaces.py 2009-08-23 08:21:13 UTC (rev 103095)
@@ -18,7 +18,7 @@
from z3c.request import interfaces
-from zope.interface import Interface
+from zope.interface import Attribute, Interface
class IPublishTraverse(Interface):
@@ -59,6 +59,21 @@
"""Interface for webob.Request objects (DELETE method)"""
+class IBrowserView(Interface):
+ """Browser views are multi-adapters for context and request objects"""
+
+ context = Attribute("The context object the view renders")
+
+ request = Attribute("The request object driving the view")
+
+
+class IBrowserPage(IBrowserView):
+ """Browser pages are callable browser views"""
+
+ def __call__():
+ """Return the result of the page"""
+
+
class IAbsoluteURL(Interface):
"""Absolute URL"""
Modified: z3c.bobopublisher/trunk/src/z3c/bobopublisher/publication.py
===================================================================
--- z3c.bobopublisher/trunk/src/z3c/bobopublisher/publication.py 2009-08-22 22:00:30 UTC (rev 103094)
+++ z3c.bobopublisher/trunk/src/z3c/bobopublisher/publication.py 2009-08-23 08:21:13 UTC (rev 103095)
@@ -21,9 +21,9 @@
from webob import Request
from z3c.bobopublisher.interfaces import IPublishTraverse, IDefaultViewName, \
- IRequest, IGETRequest, IPOSTRequest, IPUTRequest, IDELETERequest
+ IBrowserPage, IRequest, IGETRequest, IPOSTRequest, IPUTRequest, \
+ IDELETERequest
-from zope.browser.interfaces import IBrowserView
from zope.component import getUtility, queryUtility
from zope.interface import directlyProvides
from zope.location import LocationProxy, locate
@@ -73,7 +73,7 @@
obj = traverser.publishTraverse(request, name)
except KeyError:
raise bobo.NotFound
- if IBrowserView.providedBy(obj):
+ if IBrowserPage.providedBy(obj):
return bobo.query('', method=self.methods)(obj)
elif hasattr(obj, 'bobo_response'):
return obj
Modified: z3c.bobopublisher/trunk/src/z3c/bobopublisher/tests.py
===================================================================
--- z3c.bobopublisher/trunk/src/z3c/bobopublisher/tests.py 2009-08-22 22:00:30 UTC (rev 103094)
+++ z3c.bobopublisher/trunk/src/z3c/bobopublisher/tests.py 2009-08-23 08:21:13 UTC (rev 103095)
@@ -29,6 +29,7 @@
doctests = [
'z3c.bobopublisher.absoluteurl',
+ 'z3c.bobopublisher.browser',
'z3c.bobopublisher.middleware.security',
]
More information about the Checkins
mailing list