def setUp(self): RequestTest.setUp(self) FSDVTest.setUp(self) now = DateTime() # Create a fake portal and the tools we need self.portal = DummySite(id='portal').__of__(self.root) self.portal._setObject('portal_types', DummyTool()) # This is a FSPageTemplate that will be used as the View for # our content objects. It doesn't matter what it returns. path = os.path.join(self.skin_path_name, 'testPT2.pt') self.portal._setObject('dummy_view', FSPageTemplate('dummy_view', path)) uf = self.root.acl_users password = '******' uf.userFolderAddUser(portal_owner, password, ['Manager'], []) user = uf.getUserById(portal_owner) if not hasattr(user, 'aq_base'): user = user.__of__(uf) newSecurityManager(None, user) owner_auth = '%s:%s' % (portal_owner, password) self.auth_header = "Basic %s" % base64.encodestring(owner_auth) self.portal._setObject('doc1', DummyContent('doc1')) self.portal._setObject('doc2', DummyContent('doc2')) self.portal._setObject('doc3', DummyContent('doc3')) self.portal.doc1.modified_date = now self.portal.doc2.modified_date = now self.portal.doc3.modified_date = now CachingPolicyManager.manage_addCachingPolicyManager(self.portal) cpm = self.portal.caching_policy_manager # This policy only applies to doc1. It will not emit any ETag header # but it enables If-modified-since handling. cpm.addPolicy(policy_id = 'policy_no_etag', predicate = 'python:object.getId()=="doc1"', mtime_func = '', max_age_secs = 0, no_cache = 0, no_store = 0, must_revalidate = 0, vary = '', etag_func = '', enable_304s = 1) # This policy only applies to doc2. It will emit an ETag with # the constant value "abc" and also enable if-modified-since handling. cpm.addPolicy(policy_id = 'policy_etag', predicate = 'python:object.getId()=="doc2"', mtime_func = '', max_age_secs = 0, no_cache = 0, no_store = 0, must_revalidate = 0, vary = '', etag_func = 'string:abc', enable_304s = 1) # This policy only applies to doc3. Etags with constant values of # "abc" are emitted, but if-modified-since handling is turned off. cpm.addPolicy(policy_id = 'policy_disabled', predicate = 'python:object.getId()=="doc3"', mtime_func = '', max_age_secs = 0, no_cache = 0, no_store = 0, must_revalidate = 0, vary = '', etag_func = 'string:abc', enable_304s = 0)
def _makeOne(self, *args, **kw): from Products.CMFCore.CachingPolicyManager import CachingPolicyManager return CachingPolicyManager(*args, **kw)