[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/admin/tests/test_syndication.py Folder syndication tests added.

Charlie Clark charlie at begeistert.org
Sun Oct 3 19:44:22 EDT 2010


Log message for revision 117205:
  Folder syndication tests added.
  Test assertion style harmonised to use assertEqual() over asserTrue when comparing results with expectations.

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/admin/tests/test_syndication.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/admin/tests/test_syndication.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/admin/tests/test_syndication.py	2010-10-03 22:23:52 UTC (rev 117204)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/admin/tests/test_syndication.py	2010-10-03 23:44:22 UTC (rev 117205)
@@ -18,15 +18,15 @@
 from zope.i18n.interfaces import IUserPreferredCharsets
 from zope.publisher.browser import TestRequest
 
-from Products.CMFCore.tests.base.dummy import DummySite, DummyTool
+from Products.CMFCore.tests.base.dummy import DummySite, DummyTool, DummyFolder
 
 
 class DummySyndicationTool(object):
 
     isAllowed = 0
-    updatePeriod = "daily"
-    updateFrequency = 1
-    updateBase = ""
+    syUpdatePeriod = updatePeriod = "daily"
+    syUpdateFrequency = updateFrequency = 1
+    syUpdateBase = updateBase = ""
     max_items = 15
 
     def editProperties(self, **kw):
@@ -80,24 +80,28 @@
         data = {'frequency':3, 'period':'weekly', 'base':'', 'max_items':10}
         view.handle_enable("enable", data)
         self.assertTrue(view.enabled())
-        self.assertTrue(view.status == u"Syndication enabled")
-        self.assertTrue(view.request.RESPONSE.location == "http://www.foobar.com/bar/site?portal_status_message=Syndication%20enabled")
+        self.assertEqual(view.status, u"Syndication enabled")
+        self.assertEqual(view.request.RESPONSE.location,
+            "http://www.foobar.com/bar/site?portal_status_message="
+            "Syndication%20enabled")
 
     def test_handle_update(self):
         view = self._getTargetClass()
-        self.assertTrue(view.syndtool.updatePeriod == 'daily')
-        self.assertTrue(view.syndtool.updateFrequency == 1)
-        self.assertTrue(view.syndtool.updateBase == "")
-        self.assertTrue(view.syndtool.max_items == 15)
+        self.assertEqual(view.syndtool.updatePeriod, 'daily')
+        self.assertEqual(view.syndtool.updateFrequency,  1)
+        self.assertEqual(view.syndtool.updateBase, "")
+        self.assertEqual(view.syndtool.max_items, 15)
         data = {'frequency':3, 'period':'weekly', 'base':'active',
                 'max_items':10}
         view.handle_update("update", data)
-        self.assertTrue(view.syndtool.updatePeriod == 'weekly')
-        self.assertTrue(view.syndtool.updateFrequency == 3)
-        self.assertTrue(view.syndtool.updateBase == "active")
-        self.assertTrue(view.syndtool.max_items == 10)
-        self.assertTrue(view.status == u"Syndication updated")
-        self.assertTrue(view.request.RESPONSE.location == "http://www.foobar.com/bar/site?portal_status_message=Syndication%20updated")
+        self.assertEqual(view.syndtool.updatePeriod, 'weekly')
+        self.assertEqual(view.syndtool.updateFrequency, 3)
+        self.assertEqual(view.syndtool.updateBase, "active")
+        self.assertEqual(view.syndtool.max_items, 10)
+        self.assertEqual(view.status, u"Syndication updated")
+        self.assertEqual(view.request.RESPONSE.location,
+            "http://www.foobar.com/bar/site?portal_status_message="
+            "Syndication%20updated")
 
     def test_handle_disable(self):
         view = self._getTargetClass()
@@ -105,10 +109,97 @@
         self.assertTrue(view.enabled)
         view.handle_disable("disable", {})
         self.assertTrue(view.disabled)
-        self.assertTrue(view.status == u"Syndication disabled")
-        self.assertTrue(view.request.RESPONSE.location == "http://www.foobar.com/bar/site?portal_status_message=Syndication%20disabled")
+        self.assertEqual(view.status, u"Syndication disabled")
+        self.assertEqual(view.request.RESPONSE.location,
+            "http://www.foobar.com/bar/site?portal_status_message="
+            "Syndication%20disabled")
 
+
+from Products.CMFCore.interfaces import ISyndicationInfo, IFolderish
+from Products.CMFDefault.SyndicationInfo import SyndicationInfo
+
+class FolderSyndicationTests(unittest.TestCase):
+
+    def setUp(self):
+        """Setup a site"""
+        from zope.component import getSiteManager
+        self.site = site = DummySite('site')
+        sm = getSiteManager()
+        info = SyndicationInfo
+        sm.registerAdapter(info, [IFolderish], ISyndicationInfo)
+        site.portal_syndication = DummySyndicationTool()
+        site._setObject('portal_actions', DummyTool())
+        site._setObject('portal_url', DummyTool())
+        site._setObject('portal_membership', DummyTool())
+
+    def _getTargetClass(self):
+        from Products.CMFDefault.browser.admin.syndication import Syndicate
+        self.site._setObject('folder', DummyFolder('Folder'))
+        alsoProvides(self.site, IFolderish)
+        request = DummyRequest(ACTUAL_URL="http://example.com")
+        alsoProvides(request, IUserPreferredCharsets)
+        return Syndicate(self.site, request)
+
+    def test_adapter(self):
+        from Products.CMFCore.interfaces import ISyndicationInfo
+        view = self._getTargetClass()
+        self.assertTrue(ISyndicationInfo.providedBy(view.adapter))
+
+    def test_enabled(self):
+        view = self._getTargetClass()
+        self.assertFalse(view.enabled())
+
+    def test_disabled(self):
+        view = self._getTargetClass()
+        self.assertTrue(view.disabled())
+
+    def test_handle_enable(self):
+        self.site.portal_syndication.isAllowed = 1
+        view = self._getTargetClass()
+        view.handle_enable("enable", {})
+        self.assertTrue(view.enabled())
+        self.assertEqual(view.status, u"Syndication enabled")
+        self.assertEqual(view.request.RESPONSE.location,
+            "http://www.foobar.com/bar/site?portal_status_message="
+            "Syndication%20enabled")
+
+    def test_handle_disable(self):
+        self.site.portal_syndication.isAllowed = 1
+        view = self._getTargetClass()
+        view.adapter.enable()
+        view.handle_disable("disable", {})
+        self.assertFalse(view.enabled())
+        self.assertEqual(view.status, u"Syndication disabled")
+        self.assertEqual(view.request.RESPONSE.location,
+            "http://www.foobar.com/bar/site?portal_status_message="
+            "Syndication%20disabled")
+
+    def test_handle_update(self):
+        view = self._getTargetClass()
+        values = {'frequency': 4, 'period': 'weekly', 'base': '2010-01-01',
+                  'max_items': 25}
+        view.handle_update("update", values)
+        self.assertEqual(view.adapter.get_info(), values)
+        self.assertEqual(view.status, u"Syndication updated")
+        self.assertEqual(view.request.RESPONSE.location,
+            "http://www.foobar.com/bar/site?portal_status_message="
+            "Syndication%20updated")
+
+    def test_handle_revert(self):
+        view = self._getTargetClass()
+        values = {'frequency': 4, 'period': 'weekly', 'base': '2010-01-01',
+                  'max_items': 25}
+        view.handle_update("update", values)
+        view.handle_revert("", values)
+        self.assertNotEqual(view.adapter.get_info(), values)
+        self.assertEqual(view.status, u"Syndication reset to site default")
+        self.assertEqual(view.request.RESPONSE.location,
+            "http://www.foobar.com/bar/site?portal_status_message="
+            "Syndication%20reset%20to%20site%20default")
+
+
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(SyndicationViewTests))
+    suite.addTest(unittest.makeSuite(FolderSyndicationTests))
     return suite



More information about the checkins mailing list