[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