Exemplo n.º 1
0
def validate_og_fallback_image(value):
    """Check if fallback image follows best practices on MIME type,
    size, dimensions and aspect ratio.
    """
    if value is None:
        return True

    filename, data = b64decode_file(value)
    image = NamedBlobImage(data=data, filename=filename)

    if image.contentType not in OG_LEAD_IMAGE_MIME_TYPES:
        raise Invalid(MSG_INVALID_OG_LEAD_IMAGE_MIME_TYPE)

    if image.getSize() > OG_LEAD_IMAGE_MAX_SIZE:
        raise Invalid(MSG_INVALID_OG_LEAD_IMAGE_SIZE)

    width, height = image.getImageSize()
    if width < OG_LEAD_IMAGE_MIN_WIDTH or height < OG_LEAD_IMAGE_MIN_HEIGHT:
        raise Invalid(MSG_INVALID_OG_LEAD_IMAGE_DIMENSIONS)

    aspect_ratio = width / height
    if aspect_ratio < OG_LEAD_IMAGE_MIN_ASPECT_RATIO:
        raise Invalid(MSG_INVALID_OG_LEAD_IMAGE_ASPECT_RATIO)

    return True
Exemplo n.º 2
0
def validate_og_fallback_image(value):
    """Check if fallback image follows best practices on MIME type,
    size, dimensions and aspect ratio.
    """
    if value is None:
        return True

    filename, data = b64decode_file(value)
    image = NamedBlobImage(data=data, filename=filename)

    if image.contentType not in OG_LEAD_IMAGE_MIME_TYPES:
        raise Invalid(MSG_INVALID_OG_LEAD_IMAGE_MIME_TYPE)

    if image.getSize() > OG_LEAD_IMAGE_MAX_SIZE:
        raise Invalid(MSG_INVALID_OG_LEAD_IMAGE_SIZE)

    width, height = image.getImageSize()
    if width < OG_LEAD_IMAGE_MIN_WIDTH or height < OG_LEAD_IMAGE_MIN_HEIGHT:
        raise Invalid(MSG_INVALID_OG_LEAD_IMAGE_DIMENSIONS)

    aspect_ratio = width / height
    if aspect_ratio < OG_LEAD_IMAGE_MIN_ASPECT_RATIO:
        raise Invalid(MSG_INVALID_OG_LEAD_IMAGE_ASPECT_RATIO)

    return True
Exemplo n.º 3
0
 def test_opened_file_storable(self):
     data = getFile('image.gif')
     f = tempfile.NamedTemporaryFile(delete=False)
     try:
         path = f.name
         f.write(data)
         f.close()
         with open(path, 'rb') as f:
             fi = NamedBlobImage(f, filename=u'image.gif')
     finally:
         if os.path.exists(path):
             os.remove(path)
     self.assertEqual(303, fi.getSize())
Exemplo n.º 4
0
 def test_filechunk_storable(self):
     fi = NamedBlobImage(FileChunk(getFile('image.gif').read()),
                         filename=u'image.gif')
     self.assertEqual(303, fi.getSize())
Exemplo n.º 5
0
 def test_pdata_storable(self):
     pdata = Pdata(getFile('image.gif').read())
     fi = NamedBlobImage(pdata, filename=u'image.gif')
     self.assertEqual(303, fi.getSize())
Exemplo n.º 6
0
 def test_str_storable(self):
     fi = NamedBlobImage(getFile('image.gif'), filename=u'image.gif')
     self.assertEqual(303, fi.getSize())