1 | # |
---|
2 | # Test product's installation |
---|
3 | # |
---|
4 | |
---|
5 | from Products.CMFCore.utils import getToolByName |
---|
6 | from quintagroup.plonecomments.tests.base import TestCase |
---|
7 | from quintagroup.plonecomments.tests.config import PRODUCT, CONFIGLET_ID, \ |
---|
8 | PRODUCT_SKIN_NAME, PROPERTY_SHEET, EMAIL_PID, EMAIL_SUBJECT_PID, \ |
---|
9 | REQUIRE_EMAIL_PID, PERM_NAME, APPROVE_NOTIFICATION_PID, \ |
---|
10 | PUBLISHED_NOTIFICATION_PID, APPROVE_USER_NOTIFICATION_PID, \ |
---|
11 | REPLY_USER_NOTIFICATION_PID, MODERATION_PID, REJECTED_NOTIFICATION_PID, \ |
---|
12 | ANONYMOUS_COMMENTING_PID |
---|
13 | |
---|
14 | |
---|
15 | class TestInstallation(TestCase): |
---|
16 | |
---|
17 | def afterSetUp(self): |
---|
18 | self.loginAsPortalOwner() |
---|
19 | self.qi = self.portal.portal_quickinstaller |
---|
20 | |
---|
21 | def test_package_install(self): |
---|
22 | self.failUnless(self.qi.isProductInstalled(PRODUCT), |
---|
23 | '%s is not installed.' % PRODUCT) |
---|
24 | |
---|
25 | def test_configlet_install(self): |
---|
26 | configTool = getToolByName(self.portal, 'portal_controlpanel', None) |
---|
27 | self.failUnless(CONFIGLET_ID in [a.getId() |
---|
28 | for a in configTool.listActions()], |
---|
29 | 'Configlet %s is not registered.' % CONFIGLET_ID) |
---|
30 | |
---|
31 | def test_skins_install(self): |
---|
32 | skinstool = getToolByName(self.portal, 'portal_skins') |
---|
33 | self.failUnless(PRODUCT_SKIN_NAME in skinstool.objectIds(), |
---|
34 | 'There is no %s folder in portal_skins.' % PRODUCT_SKIN_NAME) |
---|
35 | for skin in skinstool.getSkinSelections(): |
---|
36 | path = skinstool.getSkinPath(skin) |
---|
37 | layers = map(str.strip, path.split(',')) |
---|
38 | self.failUnless(PRODUCT_SKIN_NAME in layers, |
---|
39 | '%s layer is not registered for %s.' % (PRODUCT_SKIN_NAME, skin)) |
---|
40 | |
---|
41 | def test_layer_install(self): |
---|
42 | from plone.browserlayer.utils import registered_layers |
---|
43 | from quintagroup.plonecomments.interfaces import IPloneCommentsLayer |
---|
44 | self.failUnless(IPloneCommentsLayer in registered_layers(), |
---|
45 | '%s layer is not registered.' % IPloneCommentsLayer.getName()) |
---|
46 | |
---|
47 | def test_propertysheet_install(self): |
---|
48 | portal_properties = getToolByName(self.portal, 'portal_properties', |
---|
49 | None) |
---|
50 | self.failUnless(PROPERTY_SHEET in portal_properties.objectIds(), |
---|
51 | '%s properies not found in portal_properties.' % PROPERTY_SHEET) |
---|
52 | property_ids = portal_properties[PROPERTY_SHEET].propertyIds() |
---|
53 | self.failUnless(EMAIL_PID in property_ids, |
---|
54 | '%s propery not found in %s property.' % |
---|
55 | (EMAIL_PID, PROPERTY_SHEET)) |
---|
56 | self.failUnless(EMAIL_SUBJECT_PID in property_ids, |
---|
57 | '%s propery not found in %s property.' % |
---|
58 | (EMAIL_SUBJECT_PID, PROPERTY_SHEET)) |
---|
59 | self.failUnless(REQUIRE_EMAIL_PID in property_ids, |
---|
60 | '%s propery not found in %s property.' % |
---|
61 | (REQUIRE_EMAIL_PID, PROPERTY_SHEET)) |
---|
62 | self.failUnless(APPROVE_NOTIFICATION_PID in property_ids, |
---|
63 | '%s propery not found in %s property.' % |
---|
64 | (APPROVE_NOTIFICATION_PID, PROPERTY_SHEET)) |
---|
65 | self.failUnless(PUBLISHED_NOTIFICATION_PID in property_ids, |
---|
66 | '%s propery not found in %s property.' % |
---|
67 | (PUBLISHED_NOTIFICATION_PID, PROPERTY_SHEET)) |
---|
68 | self.failUnless(REJECTED_NOTIFICATION_PID in property_ids, |
---|
69 | '%s propery not found in %s property.' % |
---|
70 | (REJECTED_NOTIFICATION_PID, PROPERTY_SHEET)) |
---|
71 | self.failUnless(APPROVE_USER_NOTIFICATION_PID in property_ids, |
---|
72 | '%s propery not found in %s property.' % |
---|
73 | (APPROVE_USER_NOTIFICATION_PID, PROPERTY_SHEET)) |
---|
74 | self.failUnless(REPLY_USER_NOTIFICATION_PID in property_ids, |
---|
75 | '%s propery not found in %s property.' % |
---|
76 | (REPLY_USER_NOTIFICATION_PID, PROPERTY_SHEET)) |
---|
77 | self.failUnless(MODERATION_PID in property_ids, |
---|
78 | '%s propery not found in %s property.' % |
---|
79 | (MODERATION_PID, PROPERTY_SHEET)) |
---|
80 | self.failUnless(ANONYMOUS_COMMENTING_PID in property_ids, |
---|
81 | '%s propery not found in %s property.' % |
---|
82 | (ANONYMOUS_COMMENTING_PID, PROPERTY_SHEET)) |
---|
83 | |
---|
84 | def test_permission_added(self): |
---|
85 | roles = [item['name'] |
---|
86 | for item in self.portal.rolesOfPermission(PERM_NAME)] |
---|
87 | self.failIf(roles == [], '%s not installed.' % PERM_NAME) |
---|
88 | |
---|
89 | |
---|
90 | def test_suite(): |
---|
91 | from unittest import TestSuite, makeSuite |
---|
92 | suite = TestSuite() |
---|
93 | suite.addTest(makeSuite(TestInstallation)) |
---|
94 | return suite |
---|