[Zope-Checkins]
SVN: Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/
Collector #596: bugfix and regression tests
Paul Winkler
pw_lists at slinkp.com
Fri May 28 15:19:54 EDT 2004
Log message for revision 25097:
Collector #596: bugfix and regression tests
-=-
Modified: Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/ZopePageTemplate.py
===================================================================
--- Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/ZopePageTemplate.py 2004-05-28 19:08:49 UTC (rev 25096)
+++ Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/ZopePageTemplate.py 2004-05-28 19:19:54 UTC (rev 25097)
@@ -337,11 +337,14 @@
file = REQUEST.form.get('file')
headers = getattr(file, 'headers', None)
if headers is None or not file.filename:
- zpt = ZopePageTemplate(id)
+ zpt = ZopePageTemplate(id, text)
else:
zpt = ZopePageTemplate(id, file, headers.get('content_type'))
self._setObject(id, zpt)
+ if title:
+ ob = getattr(self, id)
+ ob.pt_setTitle(title)
try:
u = self.DestinationURL()
Modified: Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/tests/__init__.py
===================================================================
--- Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/tests/__init__.py 2004-05-28 19:08:49 UTC (rev 25096)
+++ Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/tests/__init__.py 2004-05-28 19:19:54 UTC (rev 25097)
@@ -1,7 +1,7 @@
def all():
import testTALES
return testTALES.test_suite()
-
+
class harness1:
def __init__(self):
self.__callstack = []
Added: Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py
===================================================================
--- Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py 2004-05-28 19:08:49 UTC (rev 25096)
+++ Zope/branches/slinkp-collector_596/lib/python/Products/PageTemplates/tests/testZopePageTemplate.py 2004-05-28 19:19:54 UTC (rev 25097)
@@ -0,0 +1,76 @@
+"""ZopePageTemplate regression tests.
+
+Ensures that adding a page template works correctly.
+
+Note: Tests require Zope >= 2.7
+
+"""
+
+
+import unittest
+
+from Testing.makerequest import makerequest
+
+class DummyFileUpload:
+ def __init__(self, data='', filename='', content_type=''):
+ self.data = data
+ self.filename = filename
+ self.headers = {'content_type': content_type}
+
+ def read(self):
+ return self.data
+
+import Zope
+Zope.startup()
+
+class ZPTRegressions(unittest.TestCase):
+
+ def setUp(self):
+ get_transaction().begin()
+ self.app = makerequest(Zope.app())
+ f = self.app.manage_addProduct['PageTemplates'].manage_addPageTemplate
+ self._addPT = f
+ self.title = 'title of page template'
+ self.text = 'text of page template'
+
+ def tearDown(self):
+ get_transaction().abort()
+ self.app._p_jar.close()
+
+ def testAddWithParams(self):
+ pt = self._addPT('pt1', title=self.title, text=self.text)
+ self.assertEqual(pt.title, self.title)
+ self.assertEqual(pt.document_src(), self.text)
+
+ def testAddWithoutParams(self):
+ pt = self._addPT('pt1')
+ default_text = open(pt._default_content_fn).read()
+ self.assertEqual(pt.title, '')
+ self.assertEqual(pt.document_src(), default_text)
+
+ def testAddWithRequest(self):
+ """Test manage_add with file"""
+ request = self.app.REQUEST
+ request.form['file'] = DummyFileUpload(filename='some file',
+ data=self.text,
+ content_type='text/html')
+ self._addPT('pt1', REQUEST=request)
+ # no object is returned when REQUEST is passed.
+ pt = self.app.pt1
+ self.assertEqual(pt.document_src(), self.text)
+
+ def testAddWithRequestButNoFile(self):
+ """Collector #596: manage_add with text but no file"""
+ request = self.app.REQUEST
+ self._addPT('pt1', text=self.text, REQUEST=request)
+ # no object is returned when REQUEST is passed.
+ pt = self.app.pt1
+ self.assertEqual(pt.document_src(), self.text)
+
+
+def test_suite():
+ return unittest.makeSuite(ZPTRegressions)
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='test_suite')
+
More information about the Zope-Checkins
mailing list