[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/tests/test_DiscussionTool.py - added explicit login for tests that usually don't work for anonymous users

Yvo Schubbe y.2010 at wcm-solutions.de
Sun Dec 26 05:52:38 EST 2010


Log message for revision 119119:
  - added explicit login for tests that usually don't work for anonymous users
  - some related cleanup

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

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/tests/test_DiscussionTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/tests/test_DiscussionTool.py	2010-12-26 10:45:15 UTC (rev 119118)
+++ Products.CMFDefault/trunk/Products/CMFDefault/tests/test_DiscussionTool.py	2010-12-26 10:52:38 UTC (rev 119119)
@@ -16,25 +16,44 @@
 import unittest
 import Testing
 
+from AccessControl.SecurityManagement import newSecurityManager
 from zope.component import getSiteManager
 from zope.interface.verify import verifyClass
 from zope.testing.cleanup import cleanUp
 
-from Products.CMFCore.interfaces import IDiscussionTool
 from Products.CMFCore.tests.base.dummy import DummyFolder
 from Products.CMFCore.tests.base.dummy import DummySite
 from Products.CMFCore.tests.base.dummy import DummyTool
+from Products.CMFCore.tests.base.dummy import DummyUserFolder
 from Products.CMFCore.tests.base.testcase import SecurityTest
 
 
-class DiscussionToolTests(SecurityTest):
+class DiscussionToolTests(unittest.TestCase):
 
-    def _makeOne(self, *args, **kw):
+    def _getTargetClass(self):
         from Products.CMFDefault.DiscussionTool import DiscussionTool
 
-        return DiscussionTool(*args, **kw)
+        return DiscussionTool
 
+    def test_interfaces(self):
+        from Products.CMFCore.interfaces import IDiscussionTool
+
+        verifyClass(IDiscussionTool, self._getTargetClass())
+
+
+class DiscussionToolSecurityTests(SecurityTest):
+
+    def _getTargetClass(self):
+        from Products.CMFDefault.DiscussionTool import DiscussionTool
+
+        return DiscussionTool
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
     def setUp(self):
+        from Products.CMFCore.interfaces import IDiscussionTool
+
         SecurityTest.setUp(self)
         self.site = DummySite('site')
         sm = getSiteManager()
@@ -46,13 +65,9 @@
         cleanUp()
         SecurityTest.tearDown(self)
 
-    def test_interfaces(self):
-        from Products.CMFCore.interfaces import IDiscussionTool
-        from Products.CMFDefault.DiscussionTool import DiscussionTool
-
-        verifyClass(IDiscussionTool, DiscussionTool)
-
     def test_overrideDiscussionFor(self):
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         dtool = self.site.portal_discussion
         foo = self.site._setObject( 'foo', DummyFolder() )
         baz = foo._setObject( 'baz', DummyFolder() )
@@ -82,6 +97,8 @@
     def test_isDiscussionAllowedFor(self):
         # Test for Collector issue #398 (allow_discussion wrongly
         # acquired and used from parent)
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         dtool = self.site.portal_discussion
         foo = self.site._setObject( 'foo', DummyFolder() )
         baz = foo._setObject( 'baz', DummyFolder() )
@@ -113,4 +130,5 @@
 def test_suite():
     return unittest.TestSuite((
         unittest.makeSuite(DiscussionToolTests),
+        unittest.makeSuite(DiscussionToolSecurityTests),
         ))



More information about the checkins mailing list