def test_basic_tile_purge_cache(self): provideHandler(queuePurge) request = self.request alsoProvides(request, IAttributeAnnotatable) setRequest(request) registry = queryUtility(IRegistry) registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://*****:*****@@collective.cover.basic/test', '/c1/@@collective.cover.basic/test/@@images/image', '/c1/@@collective.cover.basic/test/@@images/icon', '/c1/@@collective.cover.basic/test/@@images/mini', '/c1/@@collective.cover.basic/test/@@images/large', '/c1/@@collective.cover.basic/test/@@images/listing', '/c1/@@collective.cover.basic/test/@@images/thumb', '/c1/@@collective.cover.basic/test/@@images/preview', '/c1/@@collective.cover.basic/test/@@images/tile']), IAnnotations(request)['plone.cachepurging.urls'])
def populate_with_object(self, obj): super(BasicTile, self).populate_with_object(obj) data = {'title': obj.Title(), 'description': obj.Description()} if obj.getField('image'): data['image'] = NamedImageFile(obj.getImage().data) data_mgr = ITileDataManager(self) data_mgr.set(data)
def populate_with_object(self, obj): # check permissions super(ImageTile, self).populate_with_object(obj) data = {} obj = aq_inner(obj) try: scales = queryMultiAdapter((obj, self.request), name="images") data['image'] = NamedImageFile(str(scales.scale('image').data)) except AttributeError: pass data_mgr = ITileDataManager(self) data_mgr.set(data) tile_storage = AnnotationStorage(self) obj_storage = BaseAnnotationStorage(obj) for k, v in obj_storage.items(): tile_storage.storage[k] = v tile_storage.storage[k]['modified'] = '%f' % time.time() scale_data = obj_storage.storage[k]['data'].open().read() tile_storage.storage[k]['data'] = NamedImageFile(str(scale_data))
def test_image_traverser(self): obj = self.portal['my-image'] data = self.tile.data scales = api.content.get_view(u'images', obj, self.request) self.tile.data['image'] = NamedImageFile(str(scales.scale('image').data)) data_mgr = ITileDataManager(self.tile) data_mgr.set(data) scales = self.cover.restrictedTraverse( '@@{0}/{1}/@@images'.format('collective.cover.basic', 'test')) img = scales.scale('image') self.assertTrue(images_are_equal(str(self.tile.data['image'].data), str(img.index_html().read())))
def populate_with_object(self, obj): super(BasicTile, self).populate_with_object(obj) data = {'title': obj.Title(), 'description': obj.Description(), 'uuid': IUUID(obj, None), 'date': obj.effective_date and \ DT2dt(obj.effective_date) or None, 'subjects': obj.Subject(), } # XXX: Implements a better way to detect image fields. try: data['image'] = NamedImageFile(str(obj.getImage().data)) except AttributeError: try: data['image'] = NamedImageFile(str(obj.image.data)) except AttributeError: pass data_mgr = ITileDataManager(self) data_mgr.set(data)
def test_image_traverser(self): obj = self.portal['my-image'] data = self.tile.data scales = queryMultiAdapter((obj, self.request), name="images") self.tile.data['image'] = NamedImageFile( str(scales.scale('image').data)) data_mgr = ITileDataManager(self.tile) data_mgr.set(data) scales = self.layer['portal'].restrictedTraverse( '@@{0}/{1}/@@images'.format('collective.cover.basic', 'test-basic-tile')) img = scales.scale('image') self.assertTrue( images_are_equal(str(self.tile.data['image'].data), str(img.index_html().read())))