source: products/quintagroup.captcha.core/trunk/quintagroup/captcha/core/tests/testInstallation.py @ 3600

Last change on this file since 3600 was 3600, checked in by vmaksymiv, 11 years ago

PPP fixes

  • Property svn:eol-style set to native
File size: 4.0 KB
Line 
1import unittest
2from quintagroup.captcha.core.config import LAYERS, LAYER_STATIC_CAPTCHAS, \
3    PROPERTY_SHEET, CONFIGLET_ID, TOOL_ID, CAPTCHA_KEY, PRODUCT_NAME
4
5from Products.PloneTestCase import PloneTestCase as ptc
6from Products.CMFCore.utils import getToolByName
7
8
9class TestInstallation(ptc.FunctionalTestCase):
10
11    def afterSetUp(self):
12        self.loginAsPortalOwner()
13        self.qi = getToolByName(self.portal, 'portal_quickinstaller', None)
14        self.cp = getToolByName(self.portal, 'portal_controlpanel', None)
15        self.st = getToolByName(self.portal, 'portal_skins', None)
16        self.qi.installProduct(PRODUCT_NAME)
17
18    def getLayers(self):
19        return LAYERS + [LAYER_STATIC_CAPTCHAS]
20
21    def testPropertysheetInstall(self):
22        pp = getToolByName(self.portal, 'portal_properties')
23        msg = 'Property sheet isn\'t found'
24        self.assert_(PROPERTY_SHEET in pp.objectIds(), msg)
25
26    def testPropertysheetUninstall(self):
27        self.qi.uninstallProducts([PRODUCT_NAME])
28        pp = getToolByName(self.portal, 'portal_properties')
29        self.assert_(not PROPERTY_SHEET in pp.objectIds(),
30                     'Property sheet found after uninstallation')
31
32    def testConfigletInstall(self):
33        list_ids = []
34        for action in self.cp.listActions():
35            list_ids.append(action.getId())
36        self.assert_(CONFIGLET_ID in list_ids, 'Configlet not found')
37
38    def testConfigletUninstall(self):
39        self.qi.uninstallProducts([PRODUCT_NAME])
40        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT_NAME), True,
41                            '%s is already installed' % PRODUCT_NAME)
42        list_ids = []
43        for action in self.cp.listActions():
44            list_ids.append(action.getId())
45        msg = 'Configlet found after uninstallation'
46        self.assert_(not CONFIGLET_ID in list_ids, msg)
47
48    def testSkinsInstall(self):
49        skinstool = self.st
50        layers = self.getLayers()
51        for skin in skinstool.getSkinSelections():
52            path = skinstool.getSkinPath(skin)
53            path = map(str.strip, path.split(','))
54            for layer in layers:
55                msg = '%s directory view not found in'\
56                      'portal_skins after installation' % layer
57                self.assert_(layer.split('/')[0] in skinstool.objectIds(), msg)
58                msg = '%s layer not found in %s' % (PRODUCT_NAME, skin)
59                self.assert_(layer in path, msg)
60
61    def testSkinsUninstall(self):
62        self.qi.uninstallProducts([PRODUCT_NAME])
63        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT_NAME), True,
64                            '%s is already installed' % PRODUCT_NAME)
65        skinstool = self.st
66        layers = self.getLayers()
67        for skin in skinstool.getSkinSelections():
68            path = skinstool.getSkinPath(skin)
69            path = map(str.strip, path.split(','))
70            for layer in layers:
71                msg = '%s directory view found in'\
72                      'portal_skins after uninstallation' % layer
73                skins_tool_ids = skinstool.objectIds()
74                self.assert_(not layer.split('/')[0] in skins_tool_ids, msg)
75                msg = '%s layer found in'\
76                      '%s after uninstallation' % (layer, skin)
77                self.assert_(not layer in path, msg)
78
79    def testToolInstall(self):
80        self.assert_(TOOL_ID in self.portal.objectIds())
81
82    def testToolUninstall(self):
83        self.qi.uninstallProducts([PRODUCT_NAME])
84        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT_NAME), True,
85                            '%s is already installed' % PRODUCT_NAME)
86        self.assert_(not TOOL_ID in self.portal.objectIds())
87
88    def testCaptchaKey(self):
89        ck = getattr(self.portal, CAPTCHA_KEY)
90        self.assert_(ck)
91        self.assertEqual(len(ck), 8)
92        self.qi.uninstallProducts([PRODUCT_NAME])
93        self.assert_(not self.portal.hasProperty(CAPTCHA_KEY))
94
95
96def test_suite():
97    suite = unittest.TestSuite()
98    suite.addTest(unittest.makeSuite(TestInstallation))
99    return suite
Note: See TracBrowser for help on using the repository browser.