source: products/Products.CacheSetup/tags/1.2.1-qg/Products/CacheSetup/tests/test_base_cache_rule.py @ 3305

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

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

  • Property svn:eol-style set to native
File size: 6.7 KB
Line 
1# This Python file uses the following encoding: utf-8
2"""
3base cache rule implementation tests
4
5$Id: test_base_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 Interface.Verify import verifyObject
14from Products.Archetypes.interfaces import IBaseContent
15from Products.CMFPlone.utils import _createObjectByType
16
17from Products.CacheSetup.config import *
18from Products.CacheSetup.content.base_cache_rule import BaseCacheRule
19from Products.CacheSetup.content.nocatalog import NoCatalog
20from Products.CacheSetup.interfaces import ICacheRule
21
22class TestBaseCacheRule(CacheFuTestCase):
23
24    def afterSetUp(self):
25        _createObjectByType('BaseCacheRule', self.folder, 'bcr')
26        self.bcr = getattr(self.folder, 'bcr')
27
28    def testIsNoCatalog(self):
29        self.failUnless(isinstance(self.bcr, NoCatalog))
30
31    def testImplementsCacheRule(self):
32        iface = ICacheRule
33        self.failUnless(iface.isImplementedBy(self.bcr))
34        self.failUnless(verifyObject(iface, self.bcr))
35
36    def testImplementsBaseContent(self):
37        iface = IBaseContent
38        self.failUnless(iface.isImplementedBy(self.bcr))
39        self.failUnless(verifyObject(iface, self.bcr))
40
41    def testTypeInfo(self):
42        ti = self.bcr.getTypeInfo()
43        self.failUnlessEqual(ti.Title(), 'Base Cache Rule')
44        self.failUnlessEqual(ti.getId(), 'BaseCacheRule')
45        self.failUnlessEqual(ti.Metatype(), 'BaseCacheRule')
46        self.failUnlessEqual(ti.globalAllow(), 0)
47
48class TestBaseCacheRuleMethods(CacheFuTestCase):
49
50    def afterSetUp(self):
51        _createObjectByType('BaseCacheRule', self.folder, 'bcr')
52        self.bcr = getattr(self.folder, 'bcr')
53
54    def _test_validate_expression(self):
55        self.fail('not yet implemented...')
56
57    def _test_getPredicateExpression(self):
58        self.fail('not yet implemented...')
59
60    def _test_setPredicateExpression(self):
61        self.fail('not yet implemented...')
62
63    def _test_validate_predicateExpression(self):
64        self.fail('not yet implemented...')
65
66    def _test_testPredicate(self):
67        self.fail('not yet implemented...')
68
69    def _test_getEtagExpression(self):
70        self.fail('not yet implemented...')
71
72    def _test_setEtagExpression(self):
73        self.fail('not yet implemented...')
74
75    def _test_validate_etagExpression(self):
76        self.fail('not yet implemented...')
77
78    def _test_getEtagExpressionValue(self):
79        self.fail('not yet implemented...')
80
81    def _test_getHeaderSetIdExpression(self):
82        self.fail('not yet implemented...')
83
84    def _test_setHeaderSetIdExpression(self):
85        self.fail('not yet implemented...')
86
87    def _test_validate_headerSetIdExpression(self):
88        self.fail('not yet implemented...')
89
90    def _test_getHeaderSetIdExpressionValue(self):
91        self.fail('not yet implemented...')
92
93    def test_getLastModifiedExpression(self):
94        # check if returns default value
95        self.failUnlessEqual(self.bcr.getLastModifiedExpression(), 'python:object.modified()')
96
97    def test_setLastModifiedExpression(self):
98        self.bcr.setLastModifiedExpression(None)
99        self.failUnlessEqual(self.bcr.getLastModifiedExpression(), '')
100        self.bcr.setLastModifiedExpression('python:object.modified()')
101        self.failUnlessEqual(self.bcr.getLastModifiedExpression(), 'python:object.modified()')
102
103    def _test_validate_lastModifiedExpression(self):
104        self.fail('not yet implemented...')
105
106    def _test_getLastModified(self):
107        self.fail('not yet implemented...')
108
109    def _test_lastDate(self):
110        self.fail('not yet implemented...')
111
112    def _test_getLastTransactionDate(self):
113        self.fail('not yet implemented...')
114
115    def test_getVaryExpression(self):
116        # check if returns default value
117        self.failUnlessEqual(self.bcr.getVaryExpression(), 'python:rule.portal_cache_settings.getVaryHeader()')
118
119    def test_setVaryExpression(self):
120        self.bcr.setVaryExpression(None)
121        self.failUnlessEqual(self.bcr.getVaryExpression(), '')
122        self.bcr.setVaryExpression('python:rule.portal_cache_settings.getVaryHeader()')
123        self.failUnlessEqual(self.bcr.getVaryExpression(), 'python:rule.portal_cache_settings.getVaryHeader()')
124
125    def _test_validate_varyExpression(self):
126        self.fail('not yet implemented...')
127
128    def _test_getVary(self):
129        self.fail('not yet implemented...')
130
131    def _test_getExpressionContext(self):
132        self.fail('not yet implemented...')
133
134    def _test_associateTemplate(self):
135        self.fail('not yet implemented...')
136
137    def _test_getHeaderSet(self):
138        self.fail('not yet implemented...')
139
140    def test_getHeaderSetVocabulary(self):
141        """ check if returns default header set vocabulary """
142        # where is this thing defined?
143        types = (
144            ('expression', 'Use expression below'),
145            ('no-cache', 'Do not cache'),
146            ('cache-in-memory', 'Cache in Memory'),
147            ('cache-with-etag', 'Cache with ETag'),
148            ('cache-with-last-modified', 'Cache file with Last-Modified'),
149            ('cache-in-proxy-1-hour', 'Cache in proxy cache for 1 hour'),
150            ('cache-in-proxy-24-hours', 'Cache in proxy cache for 24 hours'),
151            ('cache-in-browser-1-hour', 'Cache in browser for 1 hour'),
152            ('cache-in-browser-24-hours', 'Cache in browser for 24 hours'),
153            ('cache-in-browser-forever', 'Cache in browser forever'),
154            ('None', 'Rule does not apply')
155        )
156
157        for t in self.bcr.getHeaderSetVocabulary().items():
158            self.failUnless(t in types)
159
160    def test_getObjectDefaultView(self):
161        """ check if standard Plone types return their default views """
162        types = (
163            ('Document', 'document_view'),
164            ('Event', 'event_view'),
165            ('Favorite', 'favorite_view'),
166            ('File', 'index_html'),
167            ('Folder', 'folder_listing'),
168            ('Image', 'index_html'),
169            ('Link', 'link_view'),
170            ('News Item', 'newsitem_view'),
171        )
172
173        for type, view in types:
174            self.folder.invokeFactory(type, type)
175            obj = getattr(self.folder, type)
176            self.failUnlessEqual(self.bcr.getObjectDefaultView(obj), view)
177            self.folder.manage_delObjects(type)
178
179    def _test_addEtagComponent(self):
180        self.fail('not yet implemented...')
181
182    def _test_getEtag(self):
183        self.fail('not yet implemented...')
184
185    def _test_getRelativeUrlsToPurge(self):
186        self.fail('not yet implemented...')
187
188def test_suite():
189    from unittest import TestSuite, makeSuite
190    suite = TestSuite()
191    suite.addTest(makeSuite(TestBaseCacheRule))
192    suite.addTest(makeSuite(TestBaseCacheRuleMethods))
193    return suite
Note: See TracBrowser for help on using the repository browser.