[Checkins] SVN: Zope/trunk/ - reverted r122056 and merged test improvements from 2.13 branch

Yvo Schubbe y.2011 at wcm-solutions.de
Thu Feb 16 10:57:44 UTC 2012


Log message for revision 124417:
  - reverted r122056 and merged test improvements from 2.13 branch
  (see https://mail.zope.org/pipermail/zope-dev/2011-November/043733.html)

Changed:
  U   Zope/trunk/doc/CHANGES.rst
  UU  Zope/trunk/src/Products/Five/browser/tests/pages.py
  A   Zope/trunk/src/Products/Five/browser/tests/skin.py
  A   Zope/trunk/src/Products/Five/browser/tests/skin.txt
  A   Zope/trunk/src/Products/Five/browser/tests/skin.zcml
  A   Zope/trunk/src/Products/Five/browser/tests/test_skin.py
  U   Zope/trunk/src/Zope2/App/traversing.zcml

-=-
Modified: Zope/trunk/doc/CHANGES.rst
===================================================================
--- Zope/trunk/doc/CHANGES.rst	2012-02-16 10:33:21 UTC (rev 124416)
+++ Zope/trunk/doc/CHANGES.rst	2012-02-16 10:57:43 UTC (rev 124417)
@@ -136,15 +136,6 @@
   `lib/python` and `Products` from the default. You can continue to manually
   add these back.
 
-- Removed the rarely used support for the `++skin++` traverser. You can enable
-  it in your own applications by defining::
-
-    <adapter
-      name="skin"
-      for="* zope.publisher.interfaces.IRequest"
-      provides="zope.traversing.interfaces.ITraversable"
-      factory="zope.traversing.namespace.skin" />
-
 - Five.browser: Marked `processInputs` and `setPageEncoding` as deprecated.
   `processInputs` was replaced by the `postProcessInputs` request method and
   the charset negotiation done by `setPageEncoding` was never fully supported.

Modified: Zope/trunk/src/Products/Five/browser/tests/pages.py
===================================================================
--- Zope/trunk/src/Products/Five/browser/tests/pages.py	2012-02-16 10:33:21 UTC (rev 124416)
+++ Zope/trunk/src/Products/Five/browser/tests/pages.py	2012-02-16 10:57:43 UTC (rev 124417)
@@ -18,45 +18,59 @@
 from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
 from OFS.SimpleItem import SimpleItem
 
+
 class SimpleView(BrowserView):
+
     """More docstring. Please Zope"""
 
     def eagle(self):
         """Docstring"""
         return u"The eagle has landed"
 
+    def eagle2(self):
+        """Docstring"""
+        return u"The eagle has landed:\n%s" % self.context.absolute_url()
+
     def mouse(self):
         """Docstring"""
         return u"The mouse has been eaten by the eagle"
 
+
 class FancyView(BrowserView):
+
     """Fancy, fancy stuff"""
 
     def view(self):
         return u"Fancy, fancy"
 
+
 class CallView(BrowserView):
 
     def __call__(self):
         return u"I was __call__()'ed"
 
+
 class PermissionView(BrowserView, SimpleItem):
-    
+
     def __call__(self):
         return u"I was __call__()'ed"
 
+
 class CallTemplate(BrowserView):
 
     __call__ = ViewPageTemplateFile('falcon.pt')
 
+
 class CallableNoDocstring:
 
     def __call__(self):
         return u"No docstring"
 
+
 def function_no_docstring(self):
     return u"No docstring"
 
+
 class NoDocstringView(BrowserView):
 
     def method(self):
@@ -66,7 +80,9 @@
 
     object = CallableNoDocstring()
 
+
 class NewStyleClass(object):
+
     """
     This is a testclass to verify that new style classes work
     in browser:page


Property changes on: Zope/trunk/src/Products/Five/browser/tests/pages.py
___________________________________________________________________
Deleted: svn:keywords
   - Id

Copied: Zope/trunk/src/Products/Five/browser/tests/skin.py (from rev 124416, Zope/branches/2.13/src/Products/Five/browser/tests/skin.py)
===================================================================
--- Zope/trunk/src/Products/Five/browser/tests/skin.py	                        (rev 0)
+++ Zope/trunk/src/Products/Five/browser/tests/skin.py	2012-02-16 10:57:43 UTC (rev 124417)
@@ -0,0 +1,20 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Test skins
+"""
+
+from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+
+class ITestSkin(IDefaultBrowserLayer):
+    pass


Property changes on: Zope/trunk/src/Products/Five/browser/tests/skin.py
___________________________________________________________________
Added: svn:eol-style
   + native

Copied: Zope/trunk/src/Products/Five/browser/tests/skin.txt (from rev 124416, Zope/branches/2.13/src/Products/Five/browser/tests/skin.txt)
===================================================================
--- Zope/trunk/src/Products/Five/browser/tests/skin.txt	                        (rev 0)
+++ Zope/trunk/src/Products/Five/browser/tests/skin.txt	2012-02-16 10:57:43 UTC (rev 124417)
@@ -0,0 +1,56 @@
+Test layer and skin support
+===========================
+
+Let's register a test layer and test skin:
+
+  >>> import Products.Five.browser.tests
+  >>> from Zope2.App import zcml
+  >>> zcml.load_config("configure.zcml", Products.Five)
+  >>> zcml.load_config("skin.zcml", package=Products.Five.browser.tests)
+
+Let's add a test object that we'll access the test page from:
+
+  >>> from Products.Five.tests.testing.simplecontent import manage_addSimpleContent
+  >>> manage_addSimpleContent(self.folder, 'testoid', 'Testoid')
+
+The view was registered on a different layer than 'default', that's
+why we can't access it straight away:
+
+  >>> print http(r"""
+  ... GET /test_folder_1_/testoid/eagle.html HTTP/1.1
+  ... """)
+  HTTP/1.1 404 Not Found
+  ...
+
+It works when we explicitly use the skin that includes that layer:
+
+  >>> print http(r"""
+  ... GET /++skin++TestSkin/test_folder_1_/testoid/eagle.html HTTP/1.1
+  ... """)
+  HTTP/1.1 200 OK
+  ...
+  The eagle has landed:
+  http://localhost/++skin++TestSkin/test_folder_1_/testoid
+
+Or when we make that skin the default skin:
+
+  >>> zcml.load_string('''
+  ...   <browser:defaultSkin
+  ...       xmlns:browser="http://namespaces.zope.org/browser"
+  ...       name="TestSkin" />
+  ... ''')
+
+  >>> print http(r"""
+  ... GET /test_folder_1_/testoid/eagle.html HTTP/1.1
+  ... """)
+  HTTP/1.1 200 OK
+  ...
+  The eagle has landed:
+  http://localhost/test_folder_1_/testoid
+
+
+Clean up
+--------
+
+  >>> from zope.component.testing import tearDown
+  >>> tearDown()

Copied: Zope/trunk/src/Products/Five/browser/tests/skin.zcml (from rev 124416, Zope/branches/2.13/src/Products/Five/browser/tests/skin.zcml)
===================================================================
--- Zope/trunk/src/Products/Five/browser/tests/skin.zcml	                        (rev 0)
+++ Zope/trunk/src/Products/Five/browser/tests/skin.zcml	2012-02-16 10:57:43 UTC (rev 124417)
@@ -0,0 +1,23 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+           xmlns:meta="http://namespaces.zope.org/meta"
+           xmlns:browser="http://namespaces.zope.org/browser">
+
+  <!-- make the zope2.Public permission work -->
+  <meta:redefinePermission from="zope2.Public" to="zope.Public" />
+
+  <interface
+      interface=".skin.ITestSkin"
+      type="zope.publisher.interfaces.browser.IBrowserSkinType"
+      name="TestSkin"
+      />
+
+  <browser:page
+      for="Products.Five.tests.testing.simplecontent.ISimpleContent"
+      class=".pages.SimpleView"
+      attribute="eagle2"
+      name="eagle.html"
+      permission="zope2.Public"
+      layer=".skin.ITestSkin"
+      />
+
+</configure>

Copied: Zope/trunk/src/Products/Five/browser/tests/test_skin.py (from rev 124416, Zope/branches/2.13/src/Products/Five/browser/tests/test_skin.py)
===================================================================
--- Zope/trunk/src/Products/Five/browser/tests/test_skin.py	                        (rev 0)
+++ Zope/trunk/src/Products/Five/browser/tests/test_skin.py	2012-02-16 10:57:43 UTC (rev 124417)
@@ -0,0 +1,20 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Test browser pages
+"""
+
+def test_suite():
+    from Testing.ZopeTestCase import FunctionalDocFileSuite
+    return FunctionalDocFileSuite('skin.txt',
+                                  package='Products.Five.browser.tests')


Property changes on: Zope/trunk/src/Products/Five/browser/tests/test_skin.py
___________________________________________________________________
Added: svn:eol-style
   + native

Modified: Zope/trunk/src/Zope2/App/traversing.zcml
===================================================================
--- Zope/trunk/src/Zope2/App/traversing.zcml	2012-02-16 10:33:21 UTC (rev 124416)
+++ Zope/trunk/src/Zope2/App/traversing.zcml	2012-02-16 10:57:43 UTC (rev 124417)
@@ -38,6 +38,13 @@
       />
 
   <adapter
+      name="skin"
+      for="* zope.publisher.interfaces.IRequest"
+      provides="zope.traversing.interfaces.ITraversable"
+      factory="zope.traversing.namespace.skin"
+      />
+
+  <adapter
       name="resource"
       for="* zope.publisher.interfaces.IRequest"
       provides="zope.traversing.interfaces.ITraversable"



More information about the checkins mailing list