source: products/vendor/Products.CacheSetup/current/Products/CacheSetup/tests/test_content_cache_rule.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: 4.6 KB
Line 
1# This Python file uses the following encoding: utf-8
2"""
3content cache rule implementation tests
4
5$Id: test_content_cache_rule.py 64214 2008-05-03 02:49:17Z newbery $
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
15from Products.CMFCore.utils import getToolByName
16from Products.CMFPlone.utils import _createObjectByType
17
18from Products.CacheSetup.config import *
19from Products.CacheSetup.interfaces import ICacheRule
20
21class TestContentCacheRule(CacheFuTestCase):
22
23    def afterSetUp(self):
24        _createObjectByType('ContentCacheRule', self.folder, 'ccr')
25        self.ccr = getattr(self.folder, 'ccr')
26
27    def _testImplementsBaseCacheRule(self):
28        # I need to test this
29        iface = IBaseCacheRule
30        self.failUnless(iface.isImplementedBy(self.ccr))
31        self.failUnless(verifyObject(iface, self.ccr))
32
33    def testTypeInfo(self):
34        ti = self.ccr.getTypeInfo()
35        self.failUnlessEqual(ti.Title(), 'Content Cache Rule')
36        self.failUnlessEqual(ti.getId(), 'ContentCacheRule')
37        self.failUnlessEqual(ti.Metatype(), 'ContentCacheRule')
38        self.failUnlessEqual(ti.globalAllow(), 0)
39        self.failUnlessEqual(ti.getMethodAliases(), {'(Default)': 'cache_policy_item_config',
40                                                      'view': 'cache_policy_item_config',
41                                                      'edit': 'cache_policy_item_config'})
42
43    def testActions(self):
44        # not pretty sure about this
45        actions = ('object/view',)
46        ttool = getToolByName(self.portal, 'portal_types')
47        ccr = ttool['ContentCacheRule']
48        # actions have ManagePortal permission set
49        self.assertRaises(Unauthorized, ccr.getActionInfo, actions)
50        self.setRoles(['Manager', 'Member'])
51        info = ccr.getActionInfo(actions)
52        self.failUnless(info is not None)
53        self.failUnlessEqual(info['url'], '')
54
55class TestContentCacheRuleMethods(CacheFuTestCase):
56
57    def afterSetUp(self):
58        _createObjectByType('ContentCacheRule', self.folder, 'ccr')
59        self.ccr = getattr(self.folder, 'ccr')
60
61    def test_getPurgeExpression(self):
62        # check if returns default value
63        self.failUnlessEqual(self.ccr.getPurgeExpression(), '')
64
65    def test_setPurgeExpression(self):
66        self.ccr.setPurgeExpression('python:2+2')
67        self.failUnlessEqual(self.ccr.getPurgeExpression(), 'python:2+2')
68        self.ccr.setVaryExpression(None)
69        self.failUnlessEqual(self.ccr.getVaryExpression(), '')
70
71    def _test_validate_purgeExpression(self):
72        self.fail('not yet implemented...')
73
74    def _test_getPurgeExpressionValue(self):
75        self.fail('not yet implemented...')
76
77    def _test_getHeaderSet(self):
78        self.fail('not yet implemented...')
79
80    def _test_getViewsUrlsForObject(self):
81        self.fail('not yet implemented...')
82
83    def _test_getObjectFieldUrls(self):
84        self.fail('not yet implemented...')
85
86    def _test_getRelativeUrlsToPurge(self):
87        self.fail('not yet implemented...')
88
89    # This looks fragile. Seems like it would break with
90    # every new Plone version
91    def _test_getContentTypesVocabulary(self):
92        """ check if returns default content types """
93        types = (
94            ('CMF Document', 'CMF Document'),
95            ('CMF Event', 'CMF Event'),
96            ('CMF Favorite', 'CMF Favorite'),
97            ('CMF File', 'CMF File'),
98            ('CMF Folder', 'CMF Folder'),
99            ('CMF Image', 'CMF Image'),
100            ('CMF Large Plone Folder', 'CMF Large Plone Folder'),
101            ('CMF Link', 'CMF Link'),
102            ('CMF News Item', 'CMF News Item'),
103            ('CMF Topic', 'CMF Topic'),
104            ('Discussion Item', 'Discussion Item'),
105            ('Event', 'Event'),
106            ('Favorite', 'Favorite'),
107            ('File', 'File'),
108            ('Folder', 'Folder'),
109            ('Image', 'Image'),
110            ('Large Plone Folder', 'Large Folder (Large Plone Folder)'),
111            ('Link', 'Link'),
112            ('News Item', 'News Item'),
113            ('Document', 'Page (Document)'),
114            ('Plone Site', 'Plone Site'),
115            ('Topic', 'Smart Folder (Topic)')
116        )
117
118        for t in self.ccr.getContentTypesVocabulary().items():
119            self.failUnless(t in types)
120
121def test_suite():
122    from unittest import TestSuite, makeSuite
123    suite = TestSuite()
124    suite.addTest(makeSuite(TestContentCacheRule))
125    suite.addTest(makeSuite(TestContentCacheRuleMethods))
126    return suite
Note: See TracBrowser for help on using the repository browser.