source: products/qPloneComments/tags/1.7b/tests/testQPloneCommentsInstall.py @ 458

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

Building directory structure

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