[Checkins] SVN: z3ext.layout/trunk/ tests updated

Nikolay Kim fafhrd at datacom.kz
Wed May 14 04:03:48 EDT 2008


Log message for revision 86719:
  tests updated

Changed:
  U   z3ext.layout/trunk/CHANGES.txt
  U   z3ext.layout/trunk/src/z3ext/layout/configure.zcml
  U   z3ext.layout/trunk/src/z3ext/layout/interfaces.py
  D   z3ext.layout/trunk/src/z3ext/layout/layoutpage.pt
  A   z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt
  U   z3ext.layout/trunk/src/z3ext/layout/pagelet.py
  U   z3ext.layout/trunk/src/z3ext/layout/pagelet.txt
  U   z3ext.layout/trunk/src/z3ext/layout/tests.py

-=-
Modified: z3ext.layout/trunk/CHANGES.txt
===================================================================
--- z3ext.layout/trunk/CHANGES.txt	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/trunk/CHANGES.txt	2008-05-14 08:03:46 UTC (rev 86719)
@@ -2,6 +2,14 @@
 CHANGES
 =======
 
+1.4.2 (2008-05-14)
+------------------
+
+- Remove unused interfaces
+
+- Tests updated
+
+
 1.4.1 (2008-04-23)
 ------------------
 

Modified: z3ext.layout/trunk/src/z3ext/layout/configure.zcml
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/configure.zcml	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/trunk/src/z3ext/layout/configure.zcml	2008-05-14 08:03:46 UTC (rev 86719)
@@ -38,7 +38,7 @@
      title="Portal layout (z3ext.layout)"
      description="Default portal layout, registered for IDefaultBrowserLayer"
      for="zope.app.component.interfaces.ISite"
-     template="layoutpage.pt" />
+     template="layoutportal.pt" />
 
   <!-- Registering documentation with API doc -->
   <configure

Modified: z3ext.layout/trunk/src/z3ext/layout/interfaces.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/interfaces.py	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/trunk/src/z3ext/layout/interfaces.py	2008-05-14 08:03:46 UTC (rev 86719)
@@ -19,10 +19,6 @@
 from zope.publisher.interfaces.browser import IBrowserPage
 
 
-class ILayoutLayer(interface.Interface):
-    """ A layer that contains all registration of this package. """
-
-
 class IPagelet(IBrowserPage):
     """ pagelet """
 

Deleted: z3ext.layout/trunk/src/z3ext/layout/layoutpage.pt
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/layoutpage.pt	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/trunk/src/z3ext/layout/layoutpage.pt	2008-05-14 08:03:46 UTC (rev 86719)
@@ -1,14 +0,0 @@
-<metal:block metal:use-macro="context/@@standard_macros/page">
-  <div id="z3ext-portal" metal:fill-slot="columns">
-    <tal:block tal:content="structure provider:statusMessage" />
-    <tal:block tal:content="structure view/render" />
-  </div>
-  <div id="z3ext-portal" metal:fill-slot="workspace">
-    <tal:block tal:content="structure provider:statusMessage" />
-    <tal:block tal:content="structure view/render" />
-  </div>
-  <div id="z3ext-portal" metal:fill-slot="body">
-    <tal:block tal:content="structure provider:statusMessage" />
-    <tal:block tal:content="structure view/render" />
-  </div>
-</metal:block>

Copied: z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt (from rev 86718, z3ext.layout/trunk/src/z3ext/layout/layoutpage.pt)
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt	                        (rev 0)
+++ z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt	2008-05-14 08:03:46 UTC (rev 86719)
@@ -0,0 +1,14 @@
+<metal:block metal:use-macro="context/@@standard_macros/page">
+  <div id="z3ext-portal" metal:fill-slot="columns">
+    <tal:block tal:content="structure provider:statusMessage" />
+    <tal:block tal:content="structure view/render" />
+  </div>
+  <div id="z3ext-portal" metal:fill-slot="workspace">
+    <tal:block tal:content="structure provider:statusMessage" />
+    <tal:block tal:content="structure view/render" />
+  </div>
+  <div id="z3ext-portal" metal:fill-slot="body">
+    <tal:block tal:content="structure provider:statusMessage" />
+    <tal:block tal:content="structure view/render" />
+  </div>
+</metal:block>

Modified: z3ext.layout/trunk/src/z3ext/layout/pagelet.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.py	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/trunk/src/z3ext/layout/pagelet.py	2008-05-14 08:03:46 UTC (rev 86719)
@@ -1,6 +1,6 @@
 ##############################################################################
 #
-# Copyright (c) 2007 Zope Corporation and Contributors.
+# Copyright (c) 2008 Zope Corporation and Contributors.
 # All Rights Reserved.
 #
 # This software is subject to the provisions of the Zope Public License,

Modified: z3ext.layout/trunk/src/z3ext/layout/pagelet.txt
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.txt	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/trunk/src/z3ext/layout/pagelet.txt	2008-05-14 08:03:46 UTC (rev 86719)
@@ -5,7 +5,7 @@
 Show how we can use the pagelet directive. Register the meta configuration for 
 the directive.
 
-  >>> import os, sys, tempfile
+  >>> import os, tempfile
   >>> from zope import interface, component
   >>> from zope.configuration import xmlconfig
   >>> import z3ext.layout
@@ -17,19 +17,13 @@
   >>> class MyPagelet(BrowserPagelet):
   ...     """Custom pagelet"""
 
-Make them available under the fake package ``custom``:
-
-  >>> sys.modules['custom'] = type(
-  ...     'Module', (), 
-  ...     {'MyPagelet': MyPagelet})()
-
 Register a pagelet within the directive with minimal attributes:
 
   >>> context = xmlconfig.string("""
   ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
   ...   <z3ext:pagelet
   ...       name="index.html"
-  ...       class="custom.MyPagelet"
+  ...       class="z3ext.layout.TESTS.MyPagelet"
   ...       permission="zope.Public"
   ...       />
   ... </configure>
@@ -37,15 +31,14 @@
 
 Let's get the pagelet
 
-  >>> import zope.component
   >>> from zope.publisher.browser import TestRequest
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
   ...     name='index.html')
 
 and check them:
 
   >>> pagelet
-  <z3ext.layout.zcml.PageletClass from <class 'MyPagelet'> ...>
+  <z3ext.layout.zcml.PageletClass from <class 'z3ext.layout.TESTS.MyPagelet'> ...>
 
   >>> pagelet.context
   <object object at ...>
@@ -65,20 +58,12 @@
   >>> class Content(object):
   ...     zope.interface.implements(IContent)
 
-register the new classes in the custom module...
-
-  >>> sys.modules['custom'].IContent = IContent
-  >>> sys.modules['custom'].Content = Content
-  >>> sys.modules['custom'].SecondPagelet = SecondPagelet
-
-and use them in the directive:
-
   >>> context = xmlconfig.string("""
   ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
   ...   <z3ext:pagelet
   ...       name="custom.html"
-  ...       class="custom.SecondPagelet"
-  ...       for="custom.IContent"
+  ...       class="z3ext.layout.TESTS.SecondPagelet"
+  ...       for="z3ext.layout.TESTS.IContent"
   ...       permission="zope.Public"
   ...       label="my Label" />
   ... </configure>
@@ -93,7 +78,7 @@
 and check them:
 
   >>> pagelet
-  <z3ext.layout.zcml.PageletClass from <class 'SecondPagelet'> ...>
+  <z3ext.layout.zcml.PageletClass from <class 'z3ext.layout.TESTS.SecondPagelet'> ...>
 
   >>> pagelet.label
   u'my Label'
@@ -103,36 +88,29 @@
 
   >>> class NewPagelet(BrowserPagelet):
   ...     """New pagelet"""
-  >>> sys.modules['custom'] = type(
-  ...     'Module', (), 
-  ...     {'NewPagelet': NewPagelet})()
 
-
 Now register the pagelet within a interface.
 
   >>> class INewPagelet(interface.Interface):
   ...     """New pagelet interface."""
-  >>> sys.modules['custom'] = type(
-  ...     'Module', (), 
-  ...     {'INewPagelet': INewPagelet, 'NewPagelet': NewPagelet})()
 
   >>> context = xmlconfig.string("""
   ... <configure xmlns:z3ext="http://namespaces.zope.org/z3ext">
   ...   <z3ext:pagelet
   ...       name="new.html"
-  ...       class="custom.NewPagelet"
+  ...       class="z3ext.layout.TESTS.NewPagelet"
   ...       permission="zope.Public"
-  ...       provides="custom.INewPagelet" />
+  ... provides="z3ext.layout.TESTS.INewPagelet" />
   ... </configure>
   ... """, context)
 
 And if we get the pagelet, we can see that the object provides the new 
 pagelet interface:
 
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
   ...     name='new.html')
   >>> pagelet
-  <z3ext.layout.zcml.PageletClass from <class 'NewPagelet'> ...>
+  <z3ext.layout.zcml.PageletClass from <class 'z3ext.layout.TESTS.NewPagelet'> ...>
 
   >>> INewPagelet.providedBy(pagelet)
   True
@@ -147,7 +125,7 @@
   ... </configure>
   ... """, context) 
 
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
   ...     name='noclass.html')
   >>> pagelet
   <z3ext.layout.zcml.PageletClass from None ...>
@@ -181,7 +159,7 @@
   ... </configure>
   ... """%template, context)
 
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
   ...     name='template.html')
   >>> pagelet
   <z3ext.layout.zcml.PageletClass from None ...>
@@ -198,7 +176,7 @@
 We should use page template as template for pagelet or we should
 provide IPageTemplate adapter for pagelet
 
-  >>> pagelet = zope.component.queryMultiAdapter((object(), TestRequest()), 
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
   ...     name='noclass.html')
   >>> pagelet.render()
   Traceback (most recent call last):
@@ -213,10 +191,33 @@
   >>> component.getSiteManager().registerAdapter(
   ...     getPT, (pagelet.__class__, interface.Interface), IPageTemplate, '')
 
-  >>> print pagelet.render()
+  >>> print pagelet()
   <div>My pagelet</div>
   <BLANKLINE>
 
-Now we need to clean up the custom module.
+We can redirect during pagelet rendering, in this case render method
+doesn't call.
 
-  >>> del sys.modules['custom']
+  >>> pagelet = component.queryMultiAdapter((object(), TestRequest()), 
+  ...     name='noclass.html')
+  >>> pagelet.redirect('/')
+  >>> pagelet.isRedirected
+  True
+  >>> pagelet()
+  u''
+
+We can get default pagelet view for content. First register default view
+
+  >>> from zope.component.interfaces import IDefaultViewName
+  >>> component.getSiteManager().registerAdapter(
+  ...     'index.html', (interface.Interface, interface.Interface),
+  ...     IDefaultViewName)
+
+  >>> view = component.getMultiAdapter(
+  ...     (object(), TestRequest()), z3ext.layout.interfaces.IPagelet)
+
+  >>> view
+  <z3ext.layout.zcml.PageletClass from <class 'z3ext.layout.TESTS.MyPagelet'> ...>
+
+  >>> view.__name__
+  u'index.html'
\ No newline at end of file

Modified: z3ext.layout/trunk/src/z3ext/layout/tests.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/tests.py	2008-05-14 04:50:34 UTC (rev 86718)
+++ z3ext.layout/trunk/src/z3ext/layout/tests.py	2008-05-14 08:03:46 UTC (rev 86719)
@@ -16,11 +16,14 @@
 $Id$
 """
 import unittest, doctest
-from zope import interface
+from zope import interface, component
 from zope.testing.doctestunit import DocFileSuite
 from zope.app.testing import setup
 from zope.app.container.sample import SampleContainer
 
+from z3ext.layout import pagelet
+
+
 class IFolder1(interface.Interface):
     pass
 
@@ -44,10 +47,13 @@
     root = setup.placefulSetUp(site=True)
     root.__name__ = 'root'
     test.globs['root'] = root
+    component.provideAdapter(pagelet.queryPagelet)
+    setup.setUpTestAsModule(test, 'z3ext.layout.TESTS')
 
 
 def tearDown(test):
     setup.placefulTearDown()
+    setup.tearDownTestAsModule(test)
 
 
 def test_suite():
@@ -59,6 +65,7 @@
                 ),
             doctest.DocFileSuite(
                 'pagelet.txt',
+            setUp=setUp, tearDown=tearDown,
                 optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
                 ),
             ))



More information about the Checkins mailing list