[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - avoid conflicts between unicode messages and encoded non-ASCII strings

Yvo Schubbe y.2011 at wcm-solutions.de
Tue Jul 12 12:03:03 EDT 2011


Log message for revision 122160:
  - avoid conflicts between unicode messages and encoded non-ASCII strings

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
  U   Products.CMFDefault/trunk/Products/CMFDefault/DublinCore.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/content/tests/document.txt
  U   Products.CMFDefault/trunk/Products/CMFDefault/tests/test_Link.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt	2011-07-12 15:26:33 UTC (rev 122159)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt	2011-07-12 16:03:03 UTC (rev 122160)
@@ -4,6 +4,9 @@
 2.3.0-alpha (unreleased)
 ------------------------
 
+- DublinCore: 'getMetadataHeaders' now returns the Type ID, not the Type title.
+  This avoids conflicts between unicode messages and encoded non-ASCII strings.
+
 - Only test reStructuredText functionality under Zope 2.13 and before.
 
 - Document: Improved 'manage_FTPget' method.

Modified: Products.CMFDefault/trunk/Products/CMFDefault/DublinCore.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/DublinCore.py	2011-07-12 15:26:33 UTC (rev 122159)
+++ Products.CMFDefault/trunk/Products/CMFDefault/DublinCore.py	2011-07-12 16:03:03 UTC (rev 122160)
@@ -334,7 +334,7 @@
         hdrlist.append( ( 'Contributors', '; '.join( self.Contributors() ) ) )
         hdrlist.append( ( 'Effective_date', self.EffectiveDate() ) )
         hdrlist.append( ( 'Expiration_date', self.ExpirationDate() ) )
-        hdrlist.append( ( 'Type', self.Type() ) )
+        hdrlist.append( ( 'Type', self.getPortalTypeName() or 'Unknown' ) )
         hdrlist.append( ( 'Format', self.Format() ) )
         hdrlist.append( ( 'Language', self.Language() ) )
         hdrlist.append( ( 'Rights', self.Rights() ) )

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/content/tests/document.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/content/tests/document.txt	2011-07-12 15:26:33 UTC (rev 122159)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/content/tests/document.txt	2011-07-12 16:03:03 UTC (rev 122160)
@@ -129,7 +129,7 @@
      <meta name="Contributors" content="" />
      <meta name="Effective_date" content="None" />
      <meta name="Expiration_date" content="None" />
-     <meta name="Type" content="[[cmf_default][Document]]" />
+     <meta name="Type" content="Document" />
      <meta name="Format" content="text/html" />
      <meta name="Language" content="" />
      <meta name="Rights" content="" />

Modified: Products.CMFDefault/trunk/Products/CMFDefault/tests/test_Link.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/tests/test_Link.py	2011-07-12 15:26:33 UTC (rev 122159)
+++ Products.CMFDefault/trunk/Products/CMFDefault/tests/test_Link.py	2011-07-12 16:03:03 UTC (rev 122160)
@@ -102,6 +102,36 @@
         self.canonTest(table)
 
 
+class LinkGETTests(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from Products.CMFDefault.Link import Link
+
+        return Link
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
+    def test_manage_FTPget_empty(self):
+        LINES = ['Title: ', 'Subject: ', 'Publisher: No publisher',
+                 'Description: ', 'Contributors: ', 'Effective_date: None',
+                 'Expiration_date: None', 'Type: Unknown',
+                 'Format: text/url', 'Language: ', 'Rights: ', '']
+        d = self._makeOne('foo')
+        self.assertEqual(d.manage_FTPget().splitlines(), LINES)
+
+    def test_manage_FTPget_nonascii(self):
+        NONASCII = u'B\xe4r'.encode('utf-8')
+        LINES = ['Title: %s' % NONASCII, 'Subject: ',
+                 'Publisher: No publisher', 'Description: ', 'Contributors: ',
+                 'Effective_date: None', 'Expiration_date: None',
+                 'Type: Unknown', 'Format: text/url', 'Language: ', 'Rights: ',
+                 '']
+        d = self._makeOne('foo')
+        d.setTitle(NONASCII)
+        self.assertEqual(d.manage_FTPget().splitlines(), LINES)
+
+
 class LinkPUTTests(unittest.TestCase):
 
     def _getTargetClass(self):
@@ -153,5 +183,6 @@
 def test_suite():
     return unittest.TestSuite((
         unittest.makeSuite(LinkTests),
+        unittest.makeSuite(LinkGETTests),
         unittest.makeSuite(LinkPUTTests),
         ))



More information about the checkins mailing list