[Checkins] SVN: zope.browserpage/trunk/ Move tales:expressiontype from zope.app.pagetemplate here.

Martijn Faassen faassen at startifact.com
Mon Apr 26 11:59:30 EDT 2010


Log message for revision 111431:
  Move tales:expressiontype from zope.app.pagetemplate here.
  

Changed:
  U   zope.browserpage/trunk/CHANGES.txt
  U   zope.browserpage/trunk/setup.py
  U   zope.browserpage/trunk/src/zope/browserpage/meta.zcml
  U   zope.browserpage/trunk/src/zope/browserpage/metaconfigure.py
  U   zope.browserpage/trunk/src/zope/browserpage/metadirectives.py
  A   zope.browserpage/trunk/src/zope/browserpage/tests/test_expressiontype.py

-=-
Modified: zope.browserpage/trunk/CHANGES.txt
===================================================================
--- zope.browserpage/trunk/CHANGES.txt	2010-04-26 14:15:29 UTC (rev 111430)
+++ zope.browserpage/trunk/CHANGES.txt	2010-04-26 15:59:30 UTC (rev 111431)
@@ -2,9 +2,10 @@
 CHANGES
 =======
 
-3.11.1 (unreleased)
+3.12.0 (unreleased)
 ===================
 
+- Moved tales:expressiontype implementation from zope.app.pagetemplate here.
 
 3.11.0 (2009-12-22)
 ===================

Modified: zope.browserpage/trunk/setup.py
===================================================================
--- zope.browserpage/trunk/setup.py	2010-04-26 14:15:29 UTC (rev 111430)
+++ zope.browserpage/trunk/setup.py	2010-04-26 15:59:30 UTC (rev 111431)
@@ -19,7 +19,7 @@
                     open('CHANGES.txt').read())
 
 setup(name='zope.browserpage',
-      version = '3.11.1dev',
+      version = '3.12.0dev',
       url='http://pypi.python.org/pypi/zope.browserpage/',
       author='Zope Corporation and Contributors',
       author_email='zope-dev at zope.org',

Modified: zope.browserpage/trunk/src/zope/browserpage/meta.zcml
===================================================================
--- zope.browserpage/trunk/src/zope/browserpage/meta.zcml	2010-04-26 14:15:29 UTC (rev 111430)
+++ zope.browserpage/trunk/src/zope/browserpage/meta.zcml	2010-04-26 15:59:30 UTC (rev 111431)
@@ -41,4 +41,13 @@
 
   </meta:directives>
 
+  <meta:directives namespace="http://namespaces.zope.org/tales">
+
+    <meta:directive name="expressiontype"
+        schema=".metadirectives.IExpressionTypeDirective"
+        handler=".metaconfigure.expressiontype"
+        />
+
+  </meta:directives>
+
 </configure>

Modified: zope.browserpage/trunk/src/zope/browserpage/metaconfigure.py
===================================================================
--- zope.browserpage/trunk/src/zope/browserpage/metaconfigure.py	2010-04-26 14:15:29 UTC (rev 111430)
+++ zope.browserpage/trunk/src/zope/browserpage/metaconfigure.py	2010-04-26 15:59:30 UTC (rev 111431)
@@ -435,6 +435,13 @@
     return False
 
 
+def expressiontype(_context, name, handler):
+    _context.action(
+        discriminator = ("tales:expressiontype", name),
+        callable = registerType,
+        args = (name, handler)
+        )
+
 def registerType(name, handler):
     Engine.registerType(name, handler)
     TrustedEngine.registerType(name, handler)

Modified: zope.browserpage/trunk/src/zope/browserpage/metadirectives.py
===================================================================
--- zope.browserpage/trunk/src/zope/browserpage/metadirectives.py	2010-04-26 14:15:29 UTC (rev 111430)
+++ zope.browserpage/trunk/src/zope/browserpage/metadirectives.py	2010-04-26 15:59:30 UTC (rev 111431)
@@ -187,3 +187,20 @@
     The page directive creates a new view class from a given template
     and/or class and registers it.
     """
+
+class IExpressionTypeDirective(Interface):
+    """Register a new TALES expression type"""
+
+    name = TextLine(
+        title=u"Name",
+        description=u"""Name of the expression. This will also be used
+        as the prefix in actual TALES expressions.""",
+        required=True
+        )
+
+    handler = GlobalObject(
+        title=u"Handler",
+        description=u"""Handler is class that implements
+        zope.tales.interfaces.ITALESExpression.""",
+        required=True
+        )

Copied: zope.browserpage/trunk/src/zope/browserpage/tests/test_expressiontype.py (from rev 111382, zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_directives.py)
===================================================================
--- zope.browserpage/trunk/src/zope/browserpage/tests/test_expressiontype.py	                        (rev 0)
+++ zope.browserpage/trunk/src/zope/browserpage/tests/test_expressiontype.py	2010-04-26 15:59:30 UTC (rev 111431)
@@ -0,0 +1,60 @@
+##############################################################################
+#
+# Copyright (c) 2003 Zope Corporation 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.
+#
+##############################################################################
+"""Tests to check talesapi zcml configuration
+
+$Id$
+"""
+import unittest
+
+from cStringIO import StringIO
+from zope.configuration.xmlconfig import xmlconfig, XMLConfig
+from zope.pagetemplate.engine import Engine
+import zope.browserpage
+        
+from zope.component.testing import PlacelessSetup
+
+template = """<configure 
+   xmlns='http://namespaces.zope.org/zope'
+   xmlns:tales='http://namespaces.zope.org/tales'>
+   %s
+   </configure>"""
+
+
+class Handler(object):
+    pass
+
+class Test(PlacelessSetup, unittest.TestCase):
+
+    def setUp(self):
+        super(Test, self).setUp()
+        XMLConfig('meta.zcml', zope.browserpage)()
+
+    def testExpressionType(self):
+        xmlconfig(StringIO(template % (
+            """
+            <tales:expressiontype
+              name="test"
+              handler="zope.browserpage.tests.test_expressiontype.Handler"
+              />
+            """
+            )))
+        self.assert_("test" in Engine.getTypes())
+        self.assert_(Handler is Engine.getTypes()['test'])
+
+def test_suite():
+    loader=unittest.TestLoader()
+    return loader.loadTestsFromTestCase(Test)
+
+if __name__=='__main__':
+    unittest.TextTestRunner().run(test_suite())


Property changes on: zope.browserpage/trunk/src/zope/browserpage/tests/test_expressiontype.py
___________________________________________________________________
Added: cvs2svn:cvs-rev
   + 1.10
Added: svn:keywords
   + Id
Added: svn:mergeinfo
   + 
Added: svn:eol-style
   + native



More information about the checkins mailing list