[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ Correctly handle content which is not syndicatable. Tests no longer rely on private method for getting a SyndicationInfo adapter.

Charlie Clark charlie at begeistert.org
Wed Oct 6 05:15:23 EDT 2010


Log message for revision 117274:
  Correctly handle content which is not syndicatable. Tests no longer rely on private method for getting a SyndicationInfo adapter.

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/SyndicationTool.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationTool.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/SyndicationTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/SyndicationTool.py	2010-10-06 08:16:06 UTC (rev 117273)
+++ Products.CMFDefault/trunk/Products/CMFDefault/SyndicationTool.py	2010-10-06 09:15:22 UTC (rev 117274)
@@ -223,7 +223,12 @@
         particular obj is enabled, allowing for turning on only
         specific folders for syndication.
         """
-        info = self._syndication_info(obj)
+        if obj is None:
+            return self.isSiteSyndicationAllowed()
+        try:
+            info = self._syndication_info(obj)
+        except SyndicationError:
+            return False
         return info.enabled
 
     security.declarePublic('getSyndicationInfo')

Modified: Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationTool.py	2010-10-06 08:16:06 UTC (rev 117273)
+++ Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationTool.py	2010-10-06 09:15:22 UTC (rev 117274)
@@ -17,7 +17,7 @@
 import Testing
 
 from DateTime.DateTime import DateTime
-from zope.component import getSiteManager
+from zope.component import getSiteManager, queryAdapter
 from zope.interface import alsoProvides
 from zope.interface.verify import verifyClass
 from zope.testing.cleanup import cleanUp
@@ -146,17 +146,18 @@
     def test_object_not_syndicatable(self):
         from Products.CMFDefault.SyndicationTool import SyndicationError
         tool = self._makeOne()
-        self.assertRaises(SyndicationError, tool._syndication_info, Dummy)
+        self.assertFalse(tool.isSyndicationAllowed(Dummy))
 
     def test_object_is_syndicatable(self):
+        from Products.CMFCore.interfaces import ISyndicationInfo
         tool = self._makeOne()
         context = self._makeContext()
-        tool._syndication_info(context)
+        adapter = queryAdapter(context, ISyndicationInfo)
+        self.assertTrue(adapter is not None)
 
     def test_object_syndication_is_disabled(self):
         tool = self._makeOne()
         context = self._makeContext()
-        info = tool._syndication_info(context)
         self.assertFalse(tool.isSyndicationAllowed(context))
 
     def test_enable_object_syndication(self):



More information about the checkins mailing list