source: products/qSEOptimizer/tags/0.3.0/tests/testInstallation.py @ 1591

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

Building directory structure

File size: 4.7 KB
Line 
1#
2# Test installation script
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
11from Products.CMFQuickInstallerTool.InstalledProduct import InstalledProduct
12from Products.CMFCore.CMFCorePermissions import ManagePortal
13
14configlets = ({'id':'qSEOptimizer',
15    'name':'Search Engine Optimizer',
16    'action':'string:${portal_url}/prefs_seo_setup',
17    'condition':'',
18    'category':'Products',
19    'visible':1,
20    'appId':'qSEOptimizer',
21    'permission':ManagePortal},)
22
23PRODUCT = 'qSEOptimizer'
24qSEO_CONTENT = ['File','Document','News Item','BlogEntry']
25qSEO_FOLDER  = []
26qSEO_TYPES   = qSEO_CONTENT + qSEO_FOLDER
27
28PloneTestCase.installProduct(PRODUCT)
29PloneTestCase.setupPloneSite()
30
31
32class TestInstallation(PloneTestCase.PloneTestCase):
33
34    def afterSetUp(self):
35        self.qi = self.portal.portal_quickinstaller
36        self.qi.installProduct(PRODUCT)
37
38    def test_configlet_install(self):
39        configTool = getToolByName(self.portal, 'portal_controlpanel', None)
40        self.assert_(PRODUCT in [a.getId() for a in configTool.listActions()], 'Configlet not found')
41           
42    def test_actions_install(self):
43        portal_types = getToolByName(self.portal, 'portal_types')
44        for ptype in portal_types.objectValues():
45            action = ptype.getActionById('seo_properties', default=None )
46            if ptype.getId() in qSEO_TYPES:
47                self.assert_(action, 'Action for %s not found' % ptype.getId())
48            else:
49                self.assert_(not action, 'Action found for %s' % ptype.getId())
50
51    def test_skins_install(self):
52        skinstool=getToolByName(self.portal, 'portal_skins') 
53
54        for skin in skinstool.getSkinSelections():
55            path = skinstool.getSkinPath(skin)
56            path = map( string.strip, string.split( path,',' ) )
57            self.assert_(PRODUCT in path, 'qSEOptimizer layer not found in %s' %skin)
58
59    def test_versionedskin_install(self):
60        skinstool=getToolByName(self.portal, 'portal_skins')
61        mtool = getToolByName(self.portal, 'portal_migration')
62        plone_version = mtool.getFileSystemVersion()
63
64        for skin in skinstool.getSkinSelections():
65            path = skinstool.getSkinPath(skin)
66            path = map( string.strip, string.split( path,',' ) )
67            self.assert_(PRODUCT+'/%s' % plone_version in path, 'qSEOptimizer versioned layer not found in %s' %skin)
68
69    def test_actions_uninstall(self):
70        self.qi.uninstallProducts([PRODUCT])
71        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qSEOptimizer is already installed')
72        portal_types = getToolByName(self.portal, 'portal_types')
73        for ptype in portal_types.objectValues():
74            action = ptype.getActionById('seo_properties', default=None )
75            self.assert_(not action, 'Action for %s found after uninstallation' % ptype.getId())
76
77    def test_skins_uninstall(self):
78        self.qi.uninstallProducts([PRODUCT])
79        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qSEOptimizer is already installed')
80        skinstool=getToolByName(self.portal, 'portal_skins') 
81
82        for skin in skinstool.getSkinSelections():
83            path = skinstool.getSkinPath(skin)
84            path = map( string.strip, string.split( path,',' ) )
85            self.assert_(not PRODUCT in path, 'qSEOptimizer layer found in %s after uninstallation' %skin)
86
87    def test_versionedskin_uninstall(self):
88        self.qi.uninstallProducts([PRODUCT])
89        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qSEOptimizer is already installed')
90        skinstool=getToolByName(self.portal, 'portal_skins')
91        mtool = getToolByName(self.portal, 'portal_migration')
92        plone_version = mtool.getFileSystemVersion()
93
94        for skin in skinstool.getSkinSelections():
95            path = skinstool.getSkinPath(skin)
96            path = map( string.strip, string.split( path,',' ) )
97            self.assert_(not PRODUCT+'/%s' % plone_version in path, 'qSEOptimizer versioned layer found in %s after uninstallation' %skin)
98
99    def test_configlet_uninstall(self):
100        self.qi.uninstallProducts([PRODUCT])
101        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qSEOptimizer is already installed')
102
103        configTool = getToolByName(self.portal, 'portal_controlpanel', None)
104        self.assert_(not PRODUCT in [a.getId() for a in configTool.listActions()], 'Configlet found after uninstallation')
105
106def test_suite():
107    from unittest import TestSuite, makeSuite
108    suite = TestSuite()
109    suite.addTest(makeSuite(TestInstallation))
110    return suite
111
112if __name__ == '__main__':
113    framework()
114
Note: See TracBrowser for help on using the repository browser.