source: products/qPloneComments/tags/1.7.2/tests/testQPloneCommentsInstall.py @ 1591

Last change on this file since 1591 was 1, checked in by myroslav, 18 years ago

Building directory structure

File size: 5.4 KB
Line 
1#
2# Test product's installation/uninstallation
3#
4
5import os, sys, string
6if __name__ == '__main__':
7    execfile(os.path.join(sys.path[0], 'framework.py'))
8
9from Products.PloneTestCase import PloneTestCase
10from Products.CMFCore.utils import getToolByName
11
12PRODUCT = 'qPloneComments'
13
14PRODUCT_SKIN_NAME = "qplonecomments"
15PROPERTY_SHEET = "qPloneComments"
16CONFIGLET_ID = "prefs_comments_setup_form"
17
18EMAIL_PID = "Email_Discussion_Manager"
19APPROVE_NOTIFICATION_PID = "Enable_Approve_Notification"
20PUBLISHED_NOTIFICATION_PID = "Enable_Published_Notification"
21MODERATION_PID = "Enable_Moderation"
22ANONYMOUS_COMMENTING_PID = "Enable_Anonymous_Commenting"
23
24PloneTestCase.installProduct(PRODUCT)
25PloneTestCase.setupPloneSite()
26
27
28class TestInstallation(PloneTestCase.PloneTestCase):
29
30    def afterSetUp(self):
31        self.loginAsPortalOwner()
32
33        self.qi = self.portal.portal_quickinstaller
34        self.qi.installProduct(PRODUCT)
35
36    def test_configlet_install(self):
37        configTool = getToolByName(self.portal, 'portal_controlpanel', None)
38        self.assert_(CONFIGLET_ID in [a.getId() for a in configTool.listActions()], 'Configlet not found')
39
40    def test_skins_install(self):
41        skinstool=getToolByName(self.portal, 'portal_skins') 
42
43        for skin in skinstool.getSkinSelections():
44            path = skinstool.getSkinPath(skin)
45            path = map( string.strip, string.split( path,',' ) )
46            self.assert_(PRODUCT_SKIN_NAME in path, 'qPloneComments layer not found in %s' % skin)
47
48    #def test_versionedskin_install(self):
49    #    skinstool=getToolByName(self.portal, 'portal_skins')
50    #    mtool = getToolByName(self.portal, 'portal_migration')
51    #    plone_version = mtool.getFileSystemVersion()
52    #
53    #    for skin in skinstool.getSkinSelections():
54    #        path = skinstool.getSkinPath(skin)
55    #        path = map( string.strip, string.split( path,',' ) )
56    #        self.assert_(PRODUCT+'/%s' % plone_version in path, 'qSEOptimizer versioned layer not found in %s' %skin)
57
58    def test_propertysheet_install(self):
59        portal_properties = getToolByName(self.portal, 'portal_properties', None)
60
61        self.assert_(PROPERTY_SHEET in portal_properties.objectIds(), 'qPloneComments properies not found in portal_properties')
62
63        property_ids = portal_properties[PROPERTY_SHEET].propertyIds()
64        self.assert_(EMAIL_PID in property_ids, '%s propery not found in %s property' % (EMAIL_PID, PROPERTY_SHEET))
65        self.assert_(APPROVE_NOTIFICATION_PID in property_ids, '%s propery not found in %s property' % (APPROVE_NOTIFICATION_PID, PROPERTY_SHEET))
66        self.assert_(PUBLISHED_NOTIFICATION_PID in property_ids, '%s propery not found in %s property' % (PUBLISHED_NOTIFICATION_PID, PROPERTY_SHEET))
67        self.assert_(MODERATION_PID in property_ids, '%s propery not found in %s property' % (MODERATION_PID, PROPERTY_SHEET))
68        self.assert_(ANONYMOUS_COMMENTING_PID in property_ids, '%s propery not found in %s property' % (ANONYMOUS_COMMENTING_PID, PROPERTY_SHEET))
69
70
71    def test_skins_uninstall(self):
72        self.qi.uninstallProducts([PRODUCT])
73        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qPloneComments is already installed')
74        skinstool=getToolByName(self.portal, 'portal_skins') 
75
76        #self.assert_(not PRODUCT_SKIN_NAME in skinstool.objectIds(), '%s directory view found in portal_skins after uninstallation' % PRODUCT_SKIN_NAME)
77        for skin in skinstool.getSkinSelections():
78            path = skinstool.getSkinPath(skin)
79            path = map( string.strip, string.split( path,',' ) )
80            self.assert_(not PRODUCT_SKIN_NAME in path, '%s layer found in %s after uninstallation' % (PRODUCT_SKIN_NAME, skin))
81
82    #def test_versionedskin_uninstall(self):
83    #    self.qi.uninstallProducts([PRODUCT])
84    #    self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qSEOptimizer is already installed')
85    #    skinstool=getToolByName(self.portal, 'portal_skins')
86    #    mtool = getToolByName(self.portal, 'portal_migration')
87    #    plone_version = mtool.getFileSystemVersion()
88    #
89    #    for skin in skinstool.getSkinSelections():
90    #        path = skinstool.getSkinPath(skin)
91    #        path = map( string.strip, string.split( path,',' ) )
92    #        self.assert_(not PRODUCT+'/%s' % plone_version in path, 'qSEOptimizer versioned layer found in %s after uninstallation' %skin)
93
94    def test_configlet_uninstall(self):
95        self.qi.uninstallProducts([PRODUCT])
96        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qPloneComments is already installed')
97   
98        configTool = getToolByName(self.portal, 'portal_controlpanel', None)
99        self.assert_(not CONFIGLET_ID in [a.getId() for a in configTool.listActions()], 'Configlet found after uninstallation')
100
101    def test_propertysheet_uninstall(self):
102        self.qi.uninstallProducts([PRODUCT])
103        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qPloneComments is already installed')
104       
105        portal_properties = getToolByName(self.portal, 'portal_properties')
106        self.assert_(not PROPERTY_SHEET in portal_properties.objectIds(), \
107                     'qPloneComments property_sheet found in portal_properties after uninstallation')
108       
109
110TESTS = [TestInstallation]
111
112def test_suite():
113    from unittest import TestSuite, makeSuite
114    suite = TestSuite()
115    suite.addTest(makeSuite(TestInstallation))
116    return suite
117
118if __name__ == '__main__':
119    framework()
120
Note: See TracBrowser for help on using the repository browser.