[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ Fix explicitly disabling discussion on a content item.

Tres Seaver cvs-admin at zope.org
Tue Aug 28 17:24:52 UTC 2012


Log message for revision 127609:
  Fix explicitly disabling discussion on a content item.
  
  See https://bugs.launchpad.net/zope-cmf/+bug/1042836/
  
  

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

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/DiscussionTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/DiscussionTool.py	2012-08-28 17:04:04 UTC (rev 127608)
+++ Products.CMFDefault/trunk/Products/CMFDefault/DiscussionTool.py	2012-08-28 17:24:48 UTC (rev 127609)
@@ -79,7 +79,8 @@
                     # https://bugs.launchpad.net/zope-cmf/+bug/162532
                     pass
         else:
-            content.allow_discussion = bool(allowDiscussion)
+            # https://bugs.launchpad.net/zope-cmf/+bug/1042836/
+            content.allow_discussion = bool(int(allowDiscussion))
 
     security.declarePublic( 'getDiscussionFor' )
     def getDiscussionFor(self, content):

Modified: Products.CMFDefault/trunk/Products/CMFDefault/tests/test_DiscussionTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/tests/test_DiscussionTool.py	2012-08-28 17:04:04 UTC (rev 127608)
+++ Products.CMFDefault/trunk/Products/CMFDefault/tests/test_DiscussionTool.py	2012-08-28 17:24:48 UTC (rev 127609)
@@ -98,6 +98,18 @@
         except AttributeError:
             self.fail('Launchpad issue 162532: AttributeError raised')
 
+    def test_overrideDiscussionFor_w_string_numerics(self):
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
+        dtool = self.dtool
+        foo = self.site._setObject( 'foo', DummyFolder() )
+
+        dtool.overrideDiscussionFor(foo, '0')
+        self.assertEqual(foo.aq_base.allow_discussion, False)
+
+        dtool.overrideDiscussionFor(foo, '1')
+        self.assertEqual(foo.aq_base.allow_discussion, True)
+
     def test_isDiscussionAllowedFor(self):
         # Test for Collector issue #398 (allow_discussion wrongly
         # acquired and used from parent)



More information about the checkins mailing list