source: products/vendor/Products.CacheSetup/current/Products/CacheSetup/tests/test_rule_folder.py @ 3296

Last change on this file since 3296 was 3296, checked in by fenix, 12 years ago

Load Products.CacheSetup?-1.2.1 into vendor/Products.CacheSetup?/current.

  • Property svn:eol-style set to native
File size: 3.4 KB
Line 
1# This Python file uses the following encoding: utf-8
2"""
3rule folder implementation tests
4
5$Id: test_rule_folder.py 62774 2008-04-16 11:24:20Z wichert $
6"""
7
8__author__ = 'Héctor Velarde <hvelarde@jornada.com.mx>'
9__docformat__ = 'restructuredtext'
10
11from base import CacheFuTestCase
12
13from AccessControl import Unauthorized
14from Interface.Verify import verifyObject
15
16from Products.Archetypes.atapi import OrderedBaseFolder
17from Products.Archetypes.interfaces.base import IBaseFolder
18from Products.CMFCore.interfaces.Dynamic import DynamicType
19from Products.CMFCore.utils import getToolByName
20from Products.CMFPlone.interfaces.OrderedContainer import IOrderedContainer
21from Products.CMFPlone.utils import _createObjectByType
22from OFS.IOrderSupport import IOrderedContainer as IZopeOrderedContainer
23
24from Products.CacheSetup.config import *
25from Products.CacheSetup.content.nocatalog import NoCatalog
26from Products.CacheSetup.interfaces import ICacheToolFolder
27
28class TestRuleFolder(CacheFuTestCase):
29
30    def afterSetUp(self):
31        _createObjectByType('RuleFolder', self.folder, 'rf')
32        self.rf = getattr(self.folder, 'rf')
33
34    def testIsNoCatalog(self):
35        self.failUnless(isinstance(self.rf, NoCatalog))
36
37    def testImplementsOrderedBaseFolder(self):
38        # OrderedBaseFolder is made of all of this things
39        iface = IOrderedContainer
40        self.failUnless(iface.isImplementedBy(self.rf))
41        self.failUnless(verifyObject(iface, self.rf))
42        iface = IZopeOrderedContainer
43        self.failUnless(iface.isImplementedBy(self.rf))
44        self.failUnless(verifyObject(iface, self.rf))
45        iface = IBaseFolder
46        self.failUnless(iface.isImplementedBy(self.rf))
47        self.failUnless(verifyObject(iface, self.rf))
48        iface = DynamicType
49        self.failUnless(iface.isImplementedBy(self.rf))
50        self.failUnless(verifyObject(iface, self.rf))
51
52    def testImplementsCacheToolFolder(self):
53        iface = ICacheToolFolder
54        self.failUnless(iface.isImplementedBy(self.rf))
55        self.failUnless(verifyObject(iface, self.rf))
56
57    def testTypeInfo(self):
58        ti = self.rf.getTypeInfo()
59        self.failUnlessEqual(ti.Title(), 'Rule Folder')
60        self.failUnlessEqual(ti.getId(), 'RuleFolder')
61        self.failUnlessEqual(ti.Metatype(), 'RuleFolder')
62        self.failUnlessEqual(ti.globalAllow(), 0)
63        self.failUnlessEqual(ti.getMethodAliases(), {'(Default)': 'cache_policy_item_config', \
64                                                      'view': 'cache_policy_item_config', \
65                                                      'edit': 'cache_policy_item_config'})
66
67    def testAllowedContentTypes(self):
68        allowed = ('ContentCacheRule','TemplateCacheRule','PolicyHTTPCacheManagerCacheRule')
69        for t in self.rf.allowedContentTypes():
70            self.failUnless(t.getId() in allowed)
71
72    def testActions(self):
73        # not pretty sure about this
74        actions = ('object/view',)
75        ttool = getToolByName(self.portal, 'portal_types')
76        rf = ttool['RuleFolder']
77        # actions have ManagePortal permission set
78        self.assertRaises(Unauthorized, rf.getActionInfo, actions)
79        self.setRoles(['Manager','Member'])
80        info = rf.getActionInfo(actions)
81        self.failUnless(info is not None)
82        self.failUnlessEqual(info['url'], '')
83
84def test_suite():
85    from unittest import TestSuite, makeSuite
86    suite = TestSuite()
87    suite.addTest(makeSuite(TestRuleFolder))
88    return suite
Note: See TracBrowser for help on using the repository browser.