[Checkins] SVN: zope.app.pagetemplate/trunk/ Moved viewpagetemplatefile, simpleviewclass and metaconfigure.registerType into the zope.browserpage package, reversing the dependency.
Hanno Schlichting
hannosch at hannosch.eu
Tue Dec 22 13:40:31 EST 2009
Log message for revision 106892:
Moved viewpagetemplatefile, simpleviewclass and metaconfigure.registerType into the zope.browserpage package, reversing the dependency.
Changed:
U zope.app.pagetemplate/trunk/CHANGES.txt
U zope.app.pagetemplate/trunk/README.txt
U zope.app.pagetemplate/trunk/buildout.cfg
U zope.app.pagetemplate/trunk/setup.py
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/__init__.py
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/configure.zcml
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/metaconfigure.py
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/namedtemplate.txt
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/simpleviewclass.py
D zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/sample.py
D zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/simpletestview.py
D zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test.pt
D zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_boundpagetemplate.py
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_nested.py
D zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_talesapi.py
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_urlquote.py
D zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_viewzpt.py
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testpackage/content.py
D zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testsimpleviewclass.pt
D zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testxml.pt
U zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/viewpagetemplatefile.py
-=-
Modified: zope.app.pagetemplate/trunk/CHANGES.txt
===================================================================
--- zope.app.pagetemplate/trunk/CHANGES.txt 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/CHANGES.txt 2009-12-22 18:40:31 UTC (rev 106892)
@@ -2,9 +2,11 @@
Changes
=======
-3.8.1 (unreleased)
+3.9.0 (unreleased)
------------------
+- Moved viewpagetemplatefile, simpleviewclass and metaconfigure.registerType
+ into the zope.browserpage package, reversing the dependency.
3.8.0 (2009-12-16)
------------------
Modified: zope.app.pagetemplate/trunk/README.txt
===================================================================
--- zope.app.pagetemplate/trunk/README.txt 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/README.txt 2009-12-22 18:40:31 UTC (rev 106892)
@@ -10,7 +10,7 @@
result is the rendered template, e.g.::
from zope.publisher import BrowserPage
- from zope.app.pagetemplate import ViewPageTemplateFile
+ from zope.browserpage import ViewPageTemplateFile
class HelloWorldPage(BrowserPage):
__call__ = ViewPageTemplateFile('helloworld.pt')
Modified: zope.app.pagetemplate/trunk/buildout.cfg
===================================================================
--- zope.app.pagetemplate/trunk/buildout.cfg 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/buildout.cfg 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,5 +1,5 @@
[buildout]
-develop = .
+develop = . /opt/zope/zope.browserpage
parts = test
[test]
Modified: zope.app.pagetemplate/trunk/setup.py
===================================================================
--- zope.app.pagetemplate/trunk/setup.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/setup.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -22,7 +22,7 @@
def read(*rnames):
return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
-version = '3.8.1dev'
+version = '3.9.0dev'
setup(name='zope.app.pagetemplate',
@@ -51,6 +51,7 @@
include_package_data=True,
install_requires=[
'setuptools',
+ 'zope.browserpage>=3.10.0',
'zope.component [hook]',
'zope.configuration',
'zope.dublincore',
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/__init__.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/__init__.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/__init__.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -17,4 +17,4 @@
"""
__docformat__ = 'restructuredtext'
-from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
+from zope.browserpage import ViewPageTemplateFile
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/configure.zcml
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/configure.zcml 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/configure.zcml 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,8 +1,6 @@
<configure xmlns="http://namespaces.zope.org/zope">
- <class class=".viewpagetemplatefile.BoundPageTemplate">
- <allow attributes="__call__ __str__ __name__" />
- </class>
+ <include package="zope.browserpage" />
<adapter
for="*"
@@ -53,13 +51,6 @@
<allow attributes="__call__" />
</class>
- <adapter
- for="zope.app.pagetemplate.viewpagetemplatefile.BoundPageTemplate
- zope.publisher.interfaces.browser.IBrowserRequest"
- provides="zope.publisher.interfaces.browser.IBrowserPublisher"
- factory="zope.app.pagetemplate.viewpagetemplatefile.NoTraverser"
- />
-
<!-- TALES namespace allows view/template:default etc -->
<adapter
for="*"
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/metaconfigure.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/metaconfigure.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/metaconfigure.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -19,13 +19,14 @@
__docformat__ = 'restructuredtext'
from zope.configuration.fields import GlobalObject
+from zope.browserpage.metaconfigure import registerType
from zope.interface import Interface
-from zope.pagetemplate.engine import Engine
-from zope.pagetemplate.engine import _Engine
-from zope.pagetemplate.engine import TrustedEngine
-from zope.pagetemplate.engine import _TrustedEngine
from zope.schema import TextLine
+# BBB
+from zope.browserpage.metaconfigure import clear
+
+
class IExpressionTypeDirective(Interface):
"""Register a new TALES expression type"""
@@ -49,22 +50,3 @@
callable = registerType,
args = (name, handler)
)
-
-def registerType(name, handler):
- Engine.registerType(name, handler)
- TrustedEngine.registerType(name, handler)
-
-
-def clear():
- Engine.__init__()
- _Engine(Engine)
- TrustedEngine.__init__()
- _TrustedEngine(TrustedEngine)
-
-
-try:
- from zope.testing.cleanup import addCleanUp
-except ImportError:
- pass
-else:
- addCleanUp(clear)
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/namedtemplate.txt
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/namedtemplate.txt 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/namedtemplate.txt 2009-12-22 18:40:31 UTC (rev 106892)
@@ -10,7 +10,7 @@
adapters. To define a named template, use the `NamedTemplateImplementation`
constructor:
- >>> from zope.app.pagetemplate import ViewPageTemplateFile
+ >>> from zope.browserpage import ViewPageTemplateFile
>>> from zope.app.pagetemplate.namedtemplate import (
... NamedTemplateImplementation)
>>> sample = ViewPageTemplateFile('tests/namedtemplate.pt')
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/simpleviewclass.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/simpleviewclass.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/simpleviewclass.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -17,44 +17,7 @@
"""
__docformat__ = 'restructuredtext'
-import sys
-from zope.interface import implements
-from zope.publisher.browser import BrowserView
-from zope.publisher.interfaces.browser import IBrowserPublisher
-from zope.publisher.interfaces import NotFound
-from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
-
-class simple(BrowserView):
-
- implements(IBrowserPublisher)
-
- def browserDefault(self, request):
- return self, ()
-
- def publishTraverse(self, request, name):
- if name == 'index.html':
- return self.index
-
- raise NotFound(self, name, request)
-
- def __getitem__(self, name):
- return self.index.macros[name]
-
- def __call__(self, *args, **kw):
- return self.index(*args, **kw)
-
-
-def SimpleViewClass(src, offering=None, used_for=None, bases=(), name=u''):
- if offering is None:
- offering = sys._getframe(1).f_globals
-
- bases += (simple, )
-
- class_ = type("SimpleViewClass from %s" % src, bases,
- {'index': ViewPageTemplateFile(src, offering),
- '__name__': name})
-
- if used_for is not None:
- class_.__used_for__ = used_for
-
- return class_
+# BBB
+from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile
+from zope.browserpage.simpleviewclass import simple
+from zope.browserpage.simpleviewclass import SimpleViewClass
Deleted: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/sample.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/sample.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/sample.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,21 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 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.
-#
-##############################################################################
-"""Sample Component
-
-$Id$
-"""
-from zope.app.pagetemplate import ViewPageTemplateFile
-
-class C(object):
- index = ViewPageTemplateFile('test.pt')
Deleted: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/simpletestview.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/simpletestview.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/simpletestview.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,20 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 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.
-#
-##############################################################################
-"""Simple Test View
-
-$Id$
-"""
-from zope.app.pagetemplate.simpleviewclass import SimpleViewClass
-
-SimpleTestView = SimpleViewClass('testsimpleviewclass.pt')
Deleted: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test.pt
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test.pt 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test.pt 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1 +0,0 @@
-<html><body></body></html>
Deleted: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_boundpagetemplate.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_boundpagetemplate.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_boundpagetemplate.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,37 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 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.
-#
-##############################################################################
-"""Bound Page Template Tests
-
-$Id$
-"""
-import unittest
-
-class Test(unittest.TestCase):
-
- def testAttributes(self):
-
- from zope.app.pagetemplate.tests.sample import C
-
- C.index.im_func.foo = 1
- self.assertEqual(C.index.macros, C.index.im_func.macros)
- self.assertEqual(C.index.filename, C.index.im_func.filename)
-
-
-
-def test_suite():
- loader=unittest.TestLoader()
- return loader.loadTestsFromTestCase(Test)
-
-if __name__=='__main__':
- unittest.TextTestRunner().run(test_suite())
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_nested.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_nested.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_nested.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -7,7 +7,7 @@
from zope.component.testing import PlacelessSetup
from zope.publisher.browser import TestRequest
-from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
+from zope.browserpage import ViewPageTemplateFile
class Context(object):
pass
Deleted: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_simpleviewclass.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,173 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001-2009 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.
-#
-##############################################################################
-"""Simple View Class Tests
-
-$Id$
-"""
-import unittest
-
-class Test_SimpleTestView(unittest.TestCase):
-
- def _getTargetClass(self):
- from zope.app.pagetemplate.tests.simpletestview import SimpleTestView
- return SimpleTestView
-
- def _makeOne(self, context, request):
- return self._getTargetClass()(context, request)
-
- def test_simple(self):
- from zope.publisher.browser import TestRequest
- context = DummyContext()
- request = TestRequest()
- view = self._makeOne(context, request)
- macro = view['test']
- out = view()
- self.assertEqual(out,
- '<html>\n'
- ' <body>\n'
- ' <p>hello world</p>\n'
- ' </body>\n</html>\n')
-
-class Test_SimpleViewClass(unittest.TestCase):
-
- def _getTargetClass(self):
- from zope.app.pagetemplate.simpleviewclass import SimpleViewClass
- return SimpleViewClass
-
- def _makeKlass(self, *args, **kw):
- return self._getTargetClass()(*args, **kw)
-
- def test___name__(self):
- klass = self._makeKlass('testsimpleviewclass.pt', name='test.html')
- view = klass(None, None)
- self.assertEqual(view.__name__, 'test.html')
-
- def test___getitem___(self):
- klass = self._makeKlass('testsimpleviewclass.pt', name='test.html')
- view = klass(None, None)
- self.assert_(view['test'] is not None)
- self.assertRaises(KeyError, view.__getitem__, 'foo')
-
- def test_w_base_classes(self):
- from zope.publisher.browser import TestRequest
- class BaseClass(object):
- pass
-
- klass = self._makeKlass('testsimpleviewclass.pt', bases=(BaseClass, ))
-
- self.failUnless(issubclass(klass, BaseClass))
-
- ob = DummyContext()
- request = TestRequest()
- view = klass(ob, request)
- macro = view['test']
- out = view()
- self.assertEqual(out,
- '<html>\n'
- ' <body>\n'
- ' <p>hello world</p>\n'
- ' </body>\n</html>\n')
-
-class Test_simple(unittest.TestCase):
-
- def _getTargetClass(self):
- from zope.app.pagetemplate.simpleviewclass import simple
- return simple
-
- def _makeOne(self, context=None, request=None):
- if context is None:
- context = DummyContext()
- if request is None:
- request = DummyRequest()
- return self._getTargetClass()(context, request)
-
- def test_class_conforms_to_IBrowserPublisher(self):
- from zope.interface.verify import verifyClass
- from zope.publisher.interfaces.browser import IBrowserPublisher
- verifyClass(IBrowserPublisher, self._getTargetClass())
-
- def test_browserDefault(self):
- request = DummyRequest()
- view = self._makeOne(request=request)
- self.assertEqual(view.browserDefault(request), (view, ()))
-
- def test_publishTraverse_not_index_raises_NotFound(self):
- from zope.publisher.interfaces import NotFound
- request = DummyRequest()
- view = self._makeOne(request=request)
- self.assertRaises(NotFound, view.publishTraverse, request, 'nonesuch')
-
- def test_publishTraverse_w_index_returns_index(self):
- request = DummyRequest()
- view = self._makeOne(request=request)
- index = view.index = DummyTemplate()
- self.failUnless(view.publishTraverse(request, 'index.html') is index)
-
- def test___getitem___uses_index_macros(self):
- view = self._makeOne()
- view.index = index = DummyTemplate()
- index.macros = {}
- index.macros['aaa'] = aaa = object()
- self.failUnless(view['aaa'] is aaa)
-
- def test___call___no_args_no_kw(self):
- view = self._makeOne()
- view.index = index = DummyTemplate()
- result = view()
- self.failUnless(result is index)
- self.assertEqual(index._called_with, ((), {}))
-
- def test___call___w_args_no_kw(self):
- view = self._makeOne()
- view.index = index = DummyTemplate()
- result = view('abc')
- self.failUnless(result is index)
- self.assertEqual(index._called_with, (('abc',), {}))
-
- def test___call___no_args_w_kw(self):
- view = self._makeOne()
- view.index = index = DummyTemplate()
- result = view(foo='bar')
- self.failUnless(result is index)
- self.assertEqual(index._called_with, ((), {'foo': 'bar'}))
-
- def test___call___no_args_no_kw(self):
- view = self._makeOne()
- view.index = index = DummyTemplate()
- result = view('abc', foo='bar')
- self.failUnless(result is index)
- self.assertEqual(index._called_with, (('abc',), {'foo': 'bar'}))
-
-
-class DummyContext:
- pass
-
-class DummyResponse:
- pass
-
-class DummyRequest:
- debug = False
- response = DummyResponse()
-
-class DummyTemplate:
- def __call__(self, *args, **kw):
- self._called_with = (args, kw)
- return self
-
-def test_suite():
- return unittest.TestSuite((
- unittest.makeSuite(Test_SimpleTestView),
- unittest.makeSuite(Test_SimpleViewClass),
- unittest.makeSuite(Test_simple),
- ))
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_talesapi.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_talesapi.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_talesapi.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -16,7 +16,7 @@
$Id$
"""
from datetime import datetime
-from zope.testing.doctestunit import DocTestSuite
+from zope.testing.doctest import DocTestSuite
from zope.interface import implements
from zope.size.interfaces import ISized
from zope.traversing.interfaces import IPhysicallyLocatable
@@ -104,6 +104,3 @@
def test_suite():
return DocTestSuite()
-
-if __name__ == '__main__':
- unittest.main()
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_urlquote.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_urlquote.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_urlquote.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -22,7 +22,7 @@
import unittest
-from zope.testing.doctestunit import DocTestSuite
+from zope.testing.doctest import DocTestSuite
from zope.app.pagetemplate.urlquote import URLQuote
Deleted: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_viewzpt.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_viewzpt.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/test_viewzpt.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,144 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 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.
-#
-##############################################################################
-"""View ZPT Tests
-
-$Id$
-"""
-import unittest
-
-from zope.component import getGlobalSiteManager
-from zope.component.testing import PlacelessSetup
-from zope.interface import Interface, implements
-
-from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
-
-
-class I1(Interface):
- pass
-
-class C1(object):
- implements(I1)
-
-class InstanceWithContext(object):
- def __init__(self, context):
- self.context = context
-
-class InstanceWithoutContext(object):
- pass
-
-
-class TestViewZPT(PlacelessSetup, unittest.TestCase):
-
- def setUp(self):
- super(TestViewZPT, self).setUp()
- self.t = ViewPageTemplateFile('test.pt')
- self.context = C1()
-
- def testNamespaceContextAvailable(self):
- context = self.context
- request = None
-
- namespace = self.t.pt_getContext(InstanceWithContext(context), request)
- self.failUnless(namespace['context'] is context)
- self.failUnless('views' in namespace)
-
- def testNamespaceHereNotAvailable(self):
- request = None
- self.assertRaises(AttributeError, self.t.pt_getContext,
- InstanceWithoutContext(), request)
-
- def testViewMapper(self):
- the_view = "This is the view"
- the_view_name = "some view name"
- def ViewMaker(*args, **kw):
- return the_view
-
- from zope.publisher.interfaces import IRequest
-
- gsm = getGlobalSiteManager()
- gsm.registerAdapter(
- ViewMaker, (I1, IRequest), Interface, the_view_name, event=False)
-
- class MyRequest(object):
- implements(IRequest)
-
- request = MyRequest()
-
- namespace = self.t.pt_getContext(InstanceWithContext(self.context),
- request)
- views = namespace['views']
- self.failUnless(the_view is views[the_view_name])
-
- def test_debug_flags(self):
- from zope.publisher.browser import TestRequest
- self.request = TestRequest()
- self.request.debug.sourceAnnotations = False
- self.assert_('test.pt' not in self.t(self))
- self.request.debug.sourceAnnotations = True
- self.assert_('test.pt' in self.t(self))
-
- t = ViewPageTemplateFile('testsimpleviewclass.pt')
- self.request.debug.showTAL = False
- self.assert_('metal:' not in t(self))
- self.request.debug.showTAL = True
- self.assert_('metal:' in t(self))
-
- def test_render_sets_content_type_unless_set(self):
- from zope.publisher.browser import TestRequest
- t = ViewPageTemplateFile('test.pt')
-
- self.request = TestRequest()
- response = self.request.response
- self.assert_(not response.getHeader('Content-Type'))
- t(self)
- self.assertEquals(response.getHeader('Content-Type'), 'text/html')
-
- self.request = TestRequest()
- response = self.request.response
- response.setHeader('Content-Type', 'application/x-test-junk')
- t(self)
- self.assertEquals(response.getHeader('Content-Type'),
- 'application/x-test-junk')
-
-
-class TestViewZPTContentType(unittest.TestCase):
-
- def testInitWithoutType(self):
- t = ViewPageTemplateFile('test.pt')
- t._cook_check()
- self.assertEquals(t.content_type, "text/html")
-
- t = ViewPageTemplateFile('testxml.pt')
- t._cook_check()
- self.assertEquals(t.content_type, "text/xml")
-
- def testInitWithType(self):
- t = ViewPageTemplateFile('test.pt', content_type="text/plain")
- t._cook_check()
- self.assertEquals(t.content_type, "text/plain")
-
- t = ViewPageTemplateFile('testxml.pt', content_type="text/plain")
- t._cook_check()
- self.assertEquals(t.content_type, "text/xml")
-
-
-def test_suite():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(TestViewZPT))
- suite.addTest(unittest.makeSuite(TestViewZPTContentType))
- return suite
-
-
-if __name__ == '__main__':
- unittest.TextTestRunner().run(test_suite())
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testpackage/content.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testpackage/content.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testpackage/content.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -15,7 +15,7 @@
$Id$
"""
-from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
+from zope.browserpage import ViewPageTemplateFile
class Content(object):
def getSomething(self):
Deleted: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testsimpleviewclass.pt
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testsimpleviewclass.pt 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testsimpleviewclass.pt 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,5 +0,0 @@
-<html>
- <body>
- <p metal:define-macro="test">hello world</p>
- </body>
-</html>
Deleted: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testxml.pt
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testxml.pt 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/tests/testxml.pt 2009-12-22 18:40:31 UTC (rev 106892)
@@ -1,2 +0,0 @@
-<?xml version="1.0" ?>
-<html><body></body></html>
Modified: zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/viewpagetemplatefile.py
===================================================================
--- zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/viewpagetemplatefile.py 2009-12-22 18:39:51 UTC (rev 106891)
+++ zope.app.pagetemplate/trunk/src/zope/app/pagetemplate/viewpagetemplatefile.py 2009-12-22 18:40:31 UTC (rev 106892)
@@ -17,77 +17,8 @@
"""
__docformat__ = 'restructuredtext'
-from zope.component import getMultiAdapter
-from zope.pagetemplate.pagetemplatefile import PageTemplateFile
-from zope.pagetemplate.engine import TrustedAppPT
-
-class ViewPageTemplateFile(TrustedAppPT, PageTemplateFile):
- """Page Templates used as methods of views defined as Python classes.
- """
-
- def __init__(self, filename, _prefix=None, content_type=None):
- _prefix = self.get_path_from_prefix(_prefix)
- super(ViewPageTemplateFile, self).__init__(filename, _prefix)
- if content_type is not None:
- self.content_type = content_type
-
- def pt_getContext(self, instance, request, **_kw):
- # instance is a View component
- namespace = super(ViewPageTemplateFile, self).pt_getContext(**_kw)
- namespace['request'] = request
- namespace['view'] = instance
- namespace['context'] = context = instance.context
- namespace['views'] = ViewMapper(context, request)
- return namespace
-
- def __call__(self, instance, *args, **keywords):
- namespace = self.pt_getContext(
- request=instance.request,
- instance=instance, args=args, options=keywords)
- debug_flags = instance.request.debug
- s = self.pt_render(
- namespace,
- showtal=getattr(debug_flags, 'showTAL', 0),
- sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
- )
- response = instance.request.response
- if not response.getHeader("Content-Type"):
- response.setHeader("Content-Type", self.content_type)
- return s
-
- def __get__(self, instance, type):
- return BoundPageTemplate(self, instance)
-
-class ViewMapper(object):
- def __init__(self, ob, request):
- self.ob = ob
- self.request = request
-
- def __getitem__(self, name):
- return getMultiAdapter((self.ob, self.request), name=name)
-
-
-class BoundPageTemplate(object):
- def __init__(self, pt, ob):
- object.__setattr__(self, 'im_func', pt)
- object.__setattr__(self, 'im_self', ob)
-
- macros = property(lambda self: self.im_func.macros)
- filename = property(lambda self: self.im_func.filename)
-
- def __call__(self, *args, **kw):
- if self.im_self is None:
- im_self, args = args[0], args[1:]
- else:
- im_self = self.im_self
- return self.im_func(im_self, *args, **kw)
-
- def __setattr__(self, name, v):
- raise AttributeError("Can't set attribute", name)
-
- def __repr__(self):
- return "<BoundPageTemplateFile of %r>" % self.im_self
-
-
-def NoTraverser(ob, request):
- return None
+# BBB
+from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile
+from zope.browserpage.viewpagetemplatefile import ViewMapper
+from zope.browserpage.viewpagetemplatefile import BoundPageTemplate
+from zope.browserpage.viewpagetemplatefile import NoTraverser
More information about the checkins
mailing list