def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(PhotoGalleryTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, PhotoGalleryTile))

        tile = PhotoGalleryTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(CarouselTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, CarouselTile))

        tile = CarouselTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(HighlightsCarousel))
        self.assertTrue(verifyClass(IPersistentCoverTile, HighlightsCarousel))

        tile = HighlightsCarousel(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(ListFolderContentsTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, ListFolderContentsTile))

        tile = ListFolderContentsTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(SpacerTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, SpacerTile))

        tile = SpacerTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
Esempio n. 6
0
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(BannerTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, BannerTile))

        tile = BannerTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        # FIXME: @property decorator on class methods makes this test fail
        #        how can we fix it?
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(BannerTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, BannerTile))

        tile = BannerTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        # FIXME: @property decorator on class methods makes this test fail
        #        how can we fix it?
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
Esempio n. 8
0
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(PersistentCoverTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, PersistentCoverTile))
        # cover tiles inherit from plone.tile PersistentTile
        self.assertTrue(IPersistentTile.implementedBy(PersistentCoverTile))

        tile = PersistentCoverTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
        # cover tiles inherit from plone.tile PersistentTile
        self.assertTrue(IPersistentTile.providedBy(tile))
    def test_interface(self):
        self.assertTrue(
            IPersistentCoverTile.implementedBy(PersistentCoverTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, PersistentCoverTile))
        # cover tiles inherit from plone.tile PersistentTile
        self.assertTrue(IPersistentTile.implementedBy(PersistentCoverTile))

        tile = PersistentCoverTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
        self.assertTrue(verifyObject(IPersistentCoverTile, tile))
        # cover tiles inherit from plone.tile PersistentTile
        self.assertTrue(IPersistentTile.providedBy(tile))
Esempio n. 10
0
 def scale(self, fieldname=None, scale=None,
           height=None, width=None, **parameters):
     if not IPersistentCoverTile.providedBy(self.context):
         base_scales = queryMultiAdapter((self.context, self.request),
                                         name='images',
                                         default=None)
         if base_scales:
             try:
                 scale = base_scales.scale(fieldname,
                                           scale,
                                           height,
                                           width,
                                           **parameters)
             except AttributeError:
                 scale = None
             return scale
         else:
             return None
     if fieldname is None:
         fieldname = IPrimaryFieldInfo(self.context).fieldname
     if scale is not None:
         available = self.getAvailableSizes(fieldname)
         if scale not in available:
             return None
         width, height = available[scale]
     storage = AnnotationStorage(self.context, self.modified)
     info = storage.scale(factory=self.create,
                          fieldname=fieldname,
                          height=height,
                          width=width,
                          **parameters)
     if info is not None:
         info['fieldname'] = fieldname
         scale_view = ImageScale(self.context, self.request, **info)
         return scale_view.__of__(self.context)
Esempio n. 11
0
 def scale(self, fieldname=None, scale=None,
           height=None, width=None, **parameters):
     if not IPersistentCoverTile.providedBy(self.context):
         base_scales = queryMultiAdapter((self.context, self.request),
                                         name='images',
                                         default=None)
         if base_scales:
             try:
                 scale = base_scales.scale(fieldname,
                                           scale,
                                           height,
                                           width,
                                           **parameters)
             except AttributeError:
                 scale = None
             return scale
         else:
             return None
     if fieldname is None:
         fieldname = IPrimaryFieldInfo(self.context).fieldname
     if scale is not None:
         available = self.getAvailableSizes(fieldname)
         if scale not in available:
             return None
         width, height = available[scale]
     storage = AnnotationStorage(self.context, self.modified)
     info = storage.scale(factory=self.create,
                          fieldname=fieldname,
                          height=height,
                          width=width,
                          **parameters)
     if info is not None:
         info['fieldname'] = fieldname
         scale_view = ImageScale(self.context, self.request, **info)
         return scale_view.__of__(self.context)
Esempio n. 12
0
    def modified(self):
        """ provide a callable to return the modification time of content
            items, so stored image scales can be invalidated """
        if not IPersistentCoverTile.providedBy(self.context):
            base_scales = queryMultiAdapter((self.context, self.request),
                                            name='images',
                                            default=None)
            return base_scales and base_scales.modified()
        mtime = ''
        for k, v in self.context.data.items():
            if INamedImage.providedBy(v):
                mtime += self.context.data.get('{0}_mtime'.format(k), '')

        return mtime
Esempio n. 13
0
    def modified(self):
        """ provide a callable to return the modification time of content
            items, so stored image scales can be invalidated """
        if not IPersistentCoverTile.providedBy(self.context):
            base_scales = queryMultiAdapter((self.context, self.request),
                                            name='images',
                                            default=None)
            return base_scales and base_scales.modified()
        mtime = None
        for k, v in self.context.data.items():
            if INamedImage.providedBy(v):
                mtime = self.context.data.get('{0}_mtime'.format(k), None)

        return mtime
Esempio n. 14
0
 def create(self,
            fieldname,
            direction='thumbnail',
            height=None,
            width=None,
            **parameters):
     """ factory for image scales, see `IImageScaleStorage.scale` """
     if not IPersistentCoverTile.providedBy(self.context):
         base_scales = queryMultiAdapter((self.context, self.request),
                                         name='images',
                                         default=None)
         return base_scales and base_scales.create(
             fieldname, direction, height, width, **parameters)
     orig_value = self.context.data.get(fieldname)
     if orig_value is None:
         return
     if height is None and width is None:
         _, format = orig_value.contentType.split('/', 1)
         return None, format, (orig_value._width, orig_value._height)
     if safe_hasattr(aq_base(orig_value), 'open'):
         orig_data = orig_value.open()
     else:
         orig_data = getattr(aq_base(orig_value), 'data', orig_value)
     if not orig_data:
         return
     try:
         result = scaleImage(orig_data,
                             direction=direction,
                             height=height,
                             width=width,
                             **parameters)
     except (ConflictError, KeyboardInterrupt):
         raise
     except Exception:  # FIXME: B901 blind except: statement
         logging.exception('could not scale "{0}" of {1}'.format(
             repr(orig_value), repr(self.context.context.absolute_url())))
         return
     if result is not None:
         data, format_, dimensions = result
         mimetype = 'image/' + format_.lower()
         value = orig_value.__class__(data,
                                      contentType=mimetype,
                                      filename=orig_value.filename)
         value.fieldname = fieldname
         return value, format_, dimensions
Esempio n. 15
0
 def create(self, fieldname, direction='thumbnail',
            height=None, width=None, **parameters):
     """ factory for image scales, see `IImageScaleStorage.scale` """
     if not IPersistentCoverTile.providedBy(self.context):
         base_scales = queryMultiAdapter((self.context, self.request),
                                         name='images', default=None)
         return base_scales and base_scales.create(fieldname,
                                                   direction,
                                                   height,
                                                   width,
                                                   **parameters)
     orig_value = self.context.data.get(fieldname)
     if orig_value is None:
         return
     if height is None and width is None:
         _, format = orig_value.contentType.split('/', 1)
         return None, format, (orig_value._width, orig_value._height)
     if safe_hasattr(aq_base(orig_value), 'open'):
         orig_data = orig_value.open()
     else:
         orig_data = getattr(aq_base(orig_value), 'data', orig_value)
     if not orig_data:
         return
     try:
         result = scaleImage(orig_data, direction=direction,
                             height=height, width=width, **parameters)
     except (ConflictError, KeyboardInterrupt):
         raise
     except Exception:  # FIXME: B901 blind except: statement
         logging.exception(
             'could not scale "{0}" of {1}'.format(
                 repr(orig_value),
                 repr(self.context.context.absolute_url())))
         return
     if result is not None:
         data, format_, dimensions = result
         mimetype = 'image/' + format_.lower()
         value = orig_value.__class__(data, contentType=mimetype,
                                      filename=orig_value.filename)
         value.fieldname = fieldname
         return value, format_, dimensions
 def test_interface(self):
     self.assertTrue(IPersistentCoverTile.implementedBy(ICarrosselTile))
Esempio n. 17
0
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(BannerTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, BannerTile))

        tile = BannerTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))
Esempio n. 18
0
 def _enabled(self, name):
     tile = getMultiAdapter((self.context, self.request), name=name)
     return IPersistentCoverTile.providedBy(tile)
Esempio n. 19
0
    def test_interface(self):
        self.assertTrue(IPersistentCoverTile.implementedBy(BannerTile))
        self.assertTrue(verifyClass(IPersistentCoverTile, BannerTile))

        tile = BannerTile(None, None)
        self.assertTrue(IPersistentCoverTile.providedBy(tile))