Changeset 242 in products for qPloneComments/trunk/tests
- Timestamp:
- Feb 2, 2006 1:58:47 PM (18 years ago)
- Location:
- qPloneComments/trunk/tests
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
qPloneComments/trunk/tests/testQPloneCommentsCommenting.py
- Property svn:eol-style set to native
r183 r242 3 3 # 4 4 5 import os, sys, string6 if __name__ == '__main__':7 execfile(os.path.join(sys.path[0], 'framework.py'))8 9 5 from Products.PloneTestCase import PloneTestCase 10 6 from Products.CMFCore.utils import getToolByName 11 7 from zExceptions import Unauthorized 12 import re13 8 14 9 PRODUCT = 'qPloneComments' … … 47 42 for user_id in USERS.keys(): 48 43 self.membership.addMember(user_id, USERS[user_id]['passw'] , USERS[user_id]['roles'], []) 49 44 50 45 # Add users to Discussion Manager group 51 46 portal_groups = getToolByName(self.portal, 'portal_groups') … … 57 52 doc_fti = portal_types.getTypeInfo('Document') 58 53 doc_fti._updateProperty('allow_discussion', 1) 54 55 # Make sure Documents are visible by default 56 # XXX only do this for plone 3 57 self.portal.portal_workflow.setChainForPortalTypes(('Document',), 'plone_workflow') 59 58 60 59 # Add testing documents to portal. Add one document for avery user. … … 294 293 self.discussion.getDiscussionFor(doc_obj) 295 294 doc_obj.discussion_reply("A Reply to '%s'" % self.doc_moder_off_id,"text of reply to '%s'" % self.doc_moder_off_id) 296 295 297 296 298 297 def testAddCommentToReplyAllowableUsers(self): … … 342 341 TestCommBase.afterSetUp(self) 343 342 # Preparation for functional testing 344 # Tern On Moderation and tern on Anonymous commenting 343 # Tern On Moderation and tern on Anonymous commenting 345 344 self.request.form['enable_anonymous_commenting'] = 'True' 346 345 self.request.form['enable_moderation'] = 'True' … … 356 355 TestCommBase.afterSetUp(self) 357 356 # Preparation for functional testing 358 # Tern On Moderation and tern off Anonymous commenting 357 # Tern On Moderation and tern off Anonymous commenting 359 358 self.request.form['enable_moderation'] = 'True' 360 359 self.portal.prefs_comments_setup() … … 362 361 TestMixinAnonymOff.afterSetUp(self) 363 362 TestMixinModerationOn.afterSetUp(self) 364 365 363 366 364 … … 383 381 TestCommBase.afterSetUp(self) 384 382 # Preparation for functional testing 385 # Tern Off Moderation and tern off Anonymous commenting 383 # Tern Off Moderation and tern off Anonymous commenting 386 384 self.portal.prefs_comments_setup() 387 385 # Initialize base classes … … 389 387 TestMixinModerationOff.afterSetUp(self) 390 388 391 392 393 TESTS = [TestModerationAnonymComm, TestModerationOFFAnonymComm, TestAnonymCommOFFModeration, TestOFFModerationOFFAnonymComm]394 389 395 390 def test_suite(): … … 402 397 403 398 return suite 404 405 if __name__ == '__main__':406 framework()407 -
qPloneComments/trunk/tests/testQPloneCommentsConfiglet.py
- Property svn:eol-style set to native
r214 r242 3 3 # 4 4 5 import os, sys, string6 if __name__ == '__main__':7 execfile(os.path.join(sys.path[0], 'framework.py'))8 9 5 from Products.PloneTestCase import PloneTestCase 10 6 from Products.CMFCore.utils import getToolByName 11 from Products.CMFCore.CMFCorePermissions import ManagePortal, ReplyToItem 12 from Products.MailHost.MailHost import MailBase 7 from Products.CMFCore.permissions import ReplyToItem 13 8 from AccessControl.SecurityManagement import noSecurityManager 14 9 … … 34 29 PloneTestCase.setupPloneSite() 35 30 36 37 31 def addUsers(self): 38 32 self.loginAsPortalOwner() … … 41 35 for user_id in USERS.keys(): 42 36 self.membership.addMember(user_id, USERS[user_id]['passw'] , USERS[user_id]['roles'], []) 43 37 44 38 # Add users to Discussion Manager group 45 39 portal_groups = getToolByName(self.portal, 'portal_groups') … … 64 58 doc_fti._updateProperty('allow_discussion', 1) 65 59 60 # Make sure Documents are visible by default 61 # XXX only do this for plone 3 62 self.portal.portal_workflow.setChainForPortalTypes(('Document',), 'plone_workflow') 63 66 64 portal_properties = getToolByName(self.portal, 'portal_properties', None) 67 65 self.prefs = portal_properties[PROPERTY_SHEET] … … 80 78 member.setMemberProperties({'email':'creator@test.com'}) 81 79 #self.fail(member.getMemberId()+' :: '+member.getUserName()+' :: '+str(member.getRoles())+' :: '+member.getProperty('email')) 82 80 83 81 # Add testing document to portal 84 82 my_doc = self.portal.invokeFactory('Document', id='my_doc') 85 83 self.my_doc = self.portal['my_doc'] 86 84 self.my_doc.edit(text_format='plain', text='hello world') 87 88 85 89 86 def testAnonymousCommenting(self): … … 104 101 self.assert_(not 'Anonymous' in actual_reply_permission, \ 105 102 "'Reply to Item' permission set for %s. 'Anonymous' role NOT erased" % actual_reply_permission) 106 107 103 108 104 def testSwitchONModeration(self): … … 130 126 self.assert_(not getReplies(), "Viewing discussion item allow for Anonymous user") 131 127 132 133 128 def testSwitchOFFModeration(self): 134 129 addUsers(self) … … 152 147 self.assert_(replies, "No discussion item added or discussion forbidden for %s user" % u) 153 148 154 155 149 def testApproveNotification(self): 156 150 # Check ON Notification Anonymous Commenting … … 164 158 self.portal.prefs_comments_setup() 165 159 self.assert_(self.prefs.getProperty('enable_approve_notification')==0,"Approve Notification not terned OFF") 166 167 160 168 161 def testPublishedNotification(self): … … 179 172 180 173 181 182 TESTS = [TestConfiglet]183 184 174 def test_suite(): 185 175 from unittest import TestSuite, makeSuite … … 187 177 suite.addTest(makeSuite(TestConfiglet)) 188 178 return suite 189 190 if __name__ == '__main__':191 framework()192 -
qPloneComments/trunk/tests/testQPloneCommentsInstall.py
- Property svn:eol-style set to native
r208 r242 2 2 # Test product's installation/uninstallation 3 3 # 4 5 import os, sys, string6 if __name__ == '__main__':7 execfile(os.path.join(sys.path[0], 'framework.py'))8 4 9 5 from Products.PloneTestCase import PloneTestCase … … 31 27 def afterSetUp(self): 32 28 self.loginAsPortalOwner() 33 34 29 self.qi = self.portal.portal_quickinstaller 35 30 self.qi.installProduct(PRODUCT) … … 40 35 41 36 def test_skins_install(self): 42 skinstool=getToolByName(self.portal, 'portal_skins') 43 37 skinstool=getToolByName(self.portal, 'portal_skins') 44 38 for skin in skinstool.getSkinSelections(): 45 39 path = skinstool.getSkinPath(skin) 46 path = map( string.strip, string.split( path,',' ))40 path = map(str.strip, path.split(',')) 47 41 self.assert_(PRODUCT_SKIN_NAME in path, 'qPloneComments layer not found in %s' % skin) 48 42 49 #def test_versionedskin_install(self): 50 # skinstool=getToolByName(self.portal, 'portal_skins') 51 # mtool = getToolByName(self.portal, 'portal_migration') 52 # plone_version = mtool.getFileSystemVersion() 53 # 54 # for skin in skinstool.getSkinSelections(): 55 # path = skinstool.getSkinPath(skin) 56 # path = map( string.strip, string.split( path,',' ) ) 57 # self.assert_(PRODUCT+'/%s' % plone_version in path, 'qSEOptimizer versioned layer not found in %s' %skin) 43 def test_layer_install(self): 44 from plone.browserlayer.utils import registered_layers 45 from Products.qPloneComments.interfaces import IPloneCommentsLayer 46 self.failUnless(IPloneCommentsLayer in registered_layers()) 58 47 59 48 def test_propertysheet_install(self): … … 69 58 self.assert_(ANONYMOUS_COMMENTING_PID in property_ids, '%s propery not found in %s property' % (ANONYMOUS_COMMENTING_PID, PROPERTY_SHEET)) 70 59 71 72 60 def test_skins_uninstall(self): 73 61 self.qi.uninstallProducts([PRODUCT]) 74 62 self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qPloneComments is already installed') 75 skinstool=getToolByName(self.portal, 'portal_skins') 63 skinstool=getToolByName(self.portal, 'portal_skins') 76 64 77 65 #self.assert_(not PRODUCT_SKIN_NAME in skinstool.objectIds(), '%s directory view found in portal_skins after uninstallation' % PRODUCT_SKIN_NAME) 78 66 for skin in skinstool.getSkinSelections(): 79 67 path = skinstool.getSkinPath(skin) 80 path = map( string.strip, string.split( path,',' ))68 path = map(str.strip, path.split(',')) 81 69 self.assert_(not PRODUCT_SKIN_NAME in path, '%s layer found in %s after uninstallation' % (PRODUCT_SKIN_NAME, skin)) 82 70 83 #def test_versionedskin_uninstall(self): 84 # self.qi.uninstallProducts([PRODUCT]) 85 # self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qSEOptimizer is already installed') 86 # skinstool=getToolByName(self.portal, 'portal_skins') 87 # mtool = getToolByName(self.portal, 'portal_migration') 88 # plone_version = mtool.getFileSystemVersion() 89 # 90 # for skin in skinstool.getSkinSelections(): 91 # path = skinstool.getSkinPath(skin) 92 # path = map( string.strip, string.split( path,',' ) ) 93 # self.assert_(not PRODUCT+'/%s' % plone_version in path, 'qSEOptimizer versioned layer found in %s after uninstallation' %skin) 71 def test_layer_uninstall(self): 72 self.qi.uninstallProducts([PRODUCT]) 73 self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qPloneComments is already installed') 74 75 from plone.browserlayer.utils import registered_layers 76 from Products.qPloneComments.interfaces import IPloneCommentsLayer 77 self.failIf(IPloneCommentsLayer in registered_layers()) 94 78 95 79 def test_configlet_uninstall(self): 96 80 self.qi.uninstallProducts([PRODUCT]) 97 81 self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qPloneComments is already installed') 98 82 99 83 configTool = getToolByName(self.portal, 'portal_controlpanel', None) 100 84 self.assert_(not CONFIGLET_ID in [a.getId() for a in configTool.listActions()], 'Configlet found after uninstallation') … … 103 87 self.qi.uninstallProducts([PRODUCT]) 104 88 self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qPloneComments is already installed') 105 89 106 90 portal_properties = getToolByName(self.portal, 'portal_properties') 107 91 self.assert_(PROPERTY_SHEET in portal_properties.objectIds(), \ 108 92 'qPloneComments property_sheet not found in portal_properties after uninstallation') 109 93 110 94 def test_permission_added(self): 111 roles = [item['name'] for item in self.portal.rolesOfPermission(PERM_NAME)] 112 self.assert_( roles != [], '%s not installed'%PERM_NAME) 113 95 roles = [item['name'] for item in self.portal.rolesOfPermission(PERM_NAME)] 96 self.assert_( roles != [], '%s not installed'%PERM_NAME) 114 97 115 TESTS = [TestInstallation]116 98 117 99 def test_suite(): … … 120 102 suite.addTest(makeSuite(TestInstallation)) 121 103 return suite 122 123 if __name__ == '__main__':124 framework()125 -
qPloneComments/trunk/tests/testQPloneCommentsNotification.py
- Property svn:eol-style set to native
r214 r242 1 # 1 # 2 2 # Test configuration form working 3 3 # 4 4 5 import os, sys, string6 7 if __name__ == '__main__':8 execfile(os.path.join(sys.path[0], 'framework.py'))9 10 5 from Products.PloneTestCase import PloneTestCase 11 6 from Products.CMFCore.utils import getToolByName 12 from Products.CMFCore.CMFCorePermissions import ManagePortal, ReplyToItem 13 from Products.MailHost.MailHost import MailBase 7 from Products.CMFCore.permissions import ManagePortal, ReplyToItem 14 8 15 9 import re 16 10 from helperNotify import * 11 from email.Header import Header 17 12 from Products.qPloneComments.utils import getMsg 18 from helperNotify import *19 13 20 14 PRODUCT = 'qPloneComments' … … 46 40 doc_fti._updateProperty('allow_discussion', 1) 47 41 42 # Make sure Documents are visible by default 43 # XXX only do this for plone 3 44 self.portal.portal_workflow.setChainForPortalTypes(('Document',), 'plone_workflow') 45 48 46 portal_properties = getToolByName(self.portal, 'portal_properties', None) 49 47 self.prefs = portal_properties[PROPERTY_SHEET] … … 57 55 self.login('dm') 58 56 # For prepare mail sending - enter an e-mail adress 57 self.portal.email_from_address = 'mail@plone.test' 59 58 self.prefs._updateProperty('email_discussion_manager', 'discussion.manager@test.com') 60 59 member = self.portal.portal_membership.getAuthenticatedMember() … … 62 61 63 62 # Add testing document to portal 64 my_doc = self.portal.invokeFactory('Document', id='my_doc' )63 my_doc = self.portal.invokeFactory('Document', id='my_doc', title='Doc') 65 64 self.my_doc = self.portal['my_doc'] 66 65 self.my_doc.edit(text_format='plain', text='hello world') … … 92 91 93 92 msg = getMsg(self.portal, 'reply_notify_template', args) 94 patt = re.compile('\\n \\n([^,]*)')93 patt = re.compile('\\n([^,]*?),\\n\\n') 95 94 m = patt.search(msg) 96 95 if m: … … 184 183 reply.deleteDiscussion() 185 184 mails = getMails() 186 self.assert_([1 for m in mails if re.search('^Subject:.*(not approved).*$', m, re.I|re.M)] \ 185 regexp = re.compile("Subject:\s*(.*?)$",re.M) 186 subject = str(Header('Your comment on "Doc" was not approved', 'utf-8')) 187 self.assert_([1 for m in mails if regexp.search(m).group(1) == subject] \ 187 188 ,'No notification for rejecting comment' % properties) 188 189 189 190 #def test_191 192 TESTS = [TestNotification]193 190 194 191 def test_suite(): … … 197 194 suite.addTest(makeSuite(TestNotification)) 198 195 return suite 199 200 if __name__ == '__main__':201 framework()202
Note: See TracChangeset
for help on using the changeset viewer.