[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationInfo.py Full testing for SyndicationInfo adapter.

Charlie Clark charlie at begeistert.org
Sun Oct 3 14:17:52 EDT 2010


Log message for revision 117203:
  Full testing for SyndicationInfo adapter.

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationInfo.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationInfo.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationInfo.py	2010-10-03 17:32:25 UTC (rev 117202)
+++ Products.CMFDefault/trunk/Products/CMFDefault/tests/test_SyndicationInfo.py	2010-10-03 18:17:51 UTC (rev 117203)
@@ -4,6 +4,8 @@
 
 import unittest
 
+from DateTime.DateTime import DateTime
+
 from zope.interface.verify import verifyClass
 
 from Products.CMFCore.tests.base.testcase import TransactionalTest
@@ -11,35 +13,84 @@
 
 class SyndicationInfoTests(TransactionalTest):
     
+    def setUp(self):
+        super(SyndicationInfoTests, self).setUp()
+        from Products.CMFCore.PortalFolder import PortalFolder
+        self.root._setObject('portal', PortalFolder('portal'))
+        self.portal = self.root.portal
+        tool = self.portal._setObject('portal_syndication',
+                                DummySyndicationTool())
+        self.syndication_tool = self.portal.portal_syndication
+    
     def _getTargetClass(self):
         from Products.CMFDefault.SyndicationInfo import SyndicationInfo
         return SyndicationInfo
     
+    def _makeOne(self):
+        from Products.CMFCore.PortalFolder import PortalFolder
+        self.portal._setObject('folder', PortalFolder('folder'))
+        return self._getTargetClass()(self.portal.folder)
+    
     def test_inteface(self):
         from Products.CMFCore.interfaces import ISyndicationInfo
         verifyClass(ISyndicationInfo, self._getTargetClass())
     
+    def test_site_settings(self):
+        adapter = self._makeOne()
+        self.assertTrue(adapter.site_settings is self.syndication_tool)
+    
     def test_get_info(self):
-        pass
+        adapter = self._makeOne()
+        self.assertEqual(adapter.get_info(),
+                        {'max_items': 15, 'frequency': 1, 'period': 'daily',
+                        'base': DateTime('2010/10/03 12:00:00 GMT+0')})
     
     def test_set_info(self):
-        pass
+        adapter = self._makeOne()
+        settings = {'max_items': 10, 'frequency': 7, 'period': 'daily',
+        'base': DateTime()}
+        self.assertNotEqual(adapter.get_info(), settings)
+        adapter.set_info(**settings)
+        self.assertEqual(adapter.get_info(), settings)
     
     def revert(self):
-        pass
+        adapter = self._makeOne()
+        settings = {'max_items': 20, 'frequency': 1, 'period': 'monthly',
+        'base': DateTime()}
+        adapter.set_info(**settings)
+        self.assertEqual(adapter.get_info(), settings)
+        adapter.revert()
+        self.assertNotEqual(adapter.get_info(), settings)
     
-    def test_site_settings(self):
-        pass
-    
     def test_enabled(self):
-        pass
+        adapter = self._makeOne()
+        self.assertFalse(adapter.enabled)
     
     def test_enable(self):
-        pass
+        adapter = self._makeOne()
+        self.syndication_tool.isAllowed = 1
+        adapter.enable()
+        self.assertTrue(adapter.enabled)
     
     def test_disable(self):
+        adapter = self._makeOne()
+        self.syndication_tool.isAllowed = 1
+        adapter.enable()
+        self.assertTrue(adapter.enabled)
+        adapter.disable()
+        self.assertFalse(adapter.disable())
+
+
+class DummySyndicationTool(object):
+    
+    isAllowed = 0
+    syUpdatePeriod = 'daily'
+    syUpdateFrequency = 1
+    syUpdateBase = DateTime('2010/10/03 12:00:00 GMT+0')
+    max_items = 15
+    
+    def manage_fixupOwnershipAfterAdd(self):
         pass
-    
 
 def test_suite():
     return unittest.TestSuite((



More information about the checkins mailing list