def testCustomSizes(self):
     data = self.getImage()
     folder = self.folder
     image = folder[folder.invokeFactory('Image', id='foo', image=data)]
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23', u'bar 6:8']
     # make sure traversing works with the new sizes
     traverse = folder.REQUEST.traverseName
     foo = traverse(image, 'image_foo')
     self.assertEqual(foo.getContentType(), 'image/png')
     self.assertEqual(foo.data[1:4], 'PNG')
     self.assertEqual(foo.width, 23)
     self.assertEqual(foo.height, 23)
     # also check the generated tag
     url = image.absolute_url() + '/image_foo'
     tag = '<img src="%s" alt="foo" title="foo" height="23" width="23" />'
     self.assertEqual(foo.tag(), tag % url)
     # and the other specified size
     bar = traverse(image, 'image_bar')
     self.assertEqual(bar.getContentType(), 'image/png')
     self.assertEqual(bar.data[1:4], 'PNG')
     self.assertEqual(bar.width, 6)
     self.assertEqual(bar.height, 6)
     # make sure the traversal adapter was called in fact
     self.assertEqual(self.counter, 2)
Example #2
0
 def testCustomSizes(self):
     data = self.getImage()
     folder = self.folder
     image = folder[folder.invokeFactory('Image', id='foo', image=data)]
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23', u'bar 6:8']
     # make sure traversing works with the new sizes
     traverse = folder.REQUEST.traverseName
     foo = traverse(image, 'image_foo')
     self.assertEqual(foo.getContentType(), 'image/png')
     self.assertEqual(foo.data[1:4], 'PNG')
     self.assertEqual(foo.width, 23)
     self.assertEqual(foo.height, 23)
     # also check the generated tag
     url = image.absolute_url() + '/image_foo'
     tag = '<img src="%s" alt="foo" title="foo" height="23" width="23" />'
     self.assertEqual(foo.tag(), tag % url)
     # and the other specified size
     bar = traverse(image, 'image_bar')
     self.assertEqual(bar.getContentType(), 'image/png')
     self.assertEqual(bar.data[1:4], 'PNG')
     self.assertEqual(bar.width, 6)
     self.assertEqual(bar.height, 6)
     # make sure the traversal adapter was called in fact
     self.assertEqual(self.counter, 2)
 def afterSetUp(self):
     data = self.getImage()
     folder = self.folder
     self.image = folder[folder.invokeFactory('Image', id='foo',
                                              image=data)]
     self.adapter = ImageScaling(self.image, None)
     self.settings = getSettings()
     self.settings.allowed_sizes = [u'foo 60:60']
 def afterSetUp(self):
     data = self.getImage()
     folder = self.folder
     self.image = folder[folder.invokeFactory(
         'Image', id='foo', image=data)]
     self.adapter = ImageScaling(self.image, None)
     self.settings = getSettings()
     self.settings.allowed_sizes = [u'foo 60:60']
 def testCustomSizes(self):
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     # make sure traversing works with the new sizes
     uid, ext, width, height = self.traverse('image/foo')
     self.assertEqual(width, 23)
     self.assertEqual(height, 23)
 def afterSetUp(self):
     data = self.getImage()
     folder = self.folder
     self.image = folder[folder.invokeFactory('Image', id='foo', image=data)]
     self.field = self.image.getField('image')
     self.handler = DefaultImageScaleHandler(self.field)
     settings = getSettings()
     settings.allowed_sizes = [u'foo 60:60']
Example #7
0
 def afterSetUp(self):
     data = self.getImage()
     folder = self.folder
     self.image = folder[folder.invokeFactory('Image', id='foo', image=data)]
     self.field = self.image.getField('image')
     self.handler = DefaultImageScaleHandler(self.field)
     settings = getSettings()
     settings.allowed_sizes = [u'foo 60:60']
 def testCustomSizes(self):
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     # make sure traversing works with the new sizes
     uid, ext, width, height = self.traverse('image/foo')
     self.assertEqual(width, 23)
     self.assertEqual(height, 23)
Example #9
0
 def testAvailableSizes(self):
     # make sure the field was patched
     self.assertEqual(self.field.getAvailableSizes.func_code,
                      getAvailableSizes.func_code)
     # set custom image sizes and check the helper
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23', u'bar 8:8']
     self.assertEqual(self.field.getAvailableSizes(self.image),
                      dict(foo=(23, 23), bar=(8, 8)))
Example #10
0
 def testAvailableSizes(self):
     # make sure the field was patched
     self.assertEqual(self.field.getAvailableSizes.func_code,
                      getAvailableSizes.func_code)
     # set custom image sizes and check the helper
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23', u'bar 8:8']
     self.assertEqual(self.field.getAvailableSizes(self.image),
                      dict(foo=(23, 23), bar=(8, 8)))
 def testPublishCustomSizeViaName(self):
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     # make sure traversing works as expected
     base = '/'.join(self.folder.getPhysicalPath())
     credentials = self.getCredentials()
     response = self.publish(base + '/foo/@@images/image/foo',
                             basic=credentials)
     self.assertEqual(response.getStatus(), 200)
     self.assertImage(response.getBody(), 'JPEG', (23, 23))
 def testPublishCustomSizeViaUID(self):
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     scale = self.view.scale('image', 'foo')
     # make sure the referenced image scale is available
     url = scale.url.replace('http://nohost', '')
     response = self.publish(url, basic=self.getCredentials())
     self.assertEqual(response.getStatus(), 200)
     self.assertEqual(response.getHeader('Content-Type'), 'image/jpeg')
     self.assertImage(response.getBody(), 'JPEG', (23, 23))
 def testPublishCustomSizeViaUID(self):
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     scale = self.view.scale('image', 'foo')
     # make sure the referenced image scale is available
     url = scale.url.replace('http://nohost', '')
     response = self.publish(url, basic=self.getCredentials())
     self.assertEqual(response.getStatus(), 200)
     self.assertEqual(response.getHeader('Content-Type'), 'image/jpeg')
     self.assertImage(response.getBody(), 'JPEG', (23, 23))
 def testPublishCustomSizeViaName(self):
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     # make sure traversing works as expected
     base = '/'.join(self.folder.getPhysicalPath())
     credentials = self.getCredentials()
     response = self.publish(base + '/foo/@@images/image/foo',
                             basic=credentials)
     self.assertEqual(response.getStatus(), 200)
     self.assertImage(response.getBody(), 'JPEG', (23, 23))
 def testCustomSizeChange(self):
     # set custom image sizes & view a scale
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     uid1, ext, width, height = self.traverse('image/foo')
     self.assertEqual(width, 23)
     self.assertEqual(height, 23)
     # now let's update the scale dimensions, after which the scale
     # should also have been updated...
     settings.allowed_sizes = [u'foo 42:42']
     uid2, ext, width, height = self.traverse('image/foo')
     self.assertEqual(width, 42)
     self.assertEqual(height, 42)
     self.assertNotEqual(uid1, uid2, 'scale not updated?')
 def testCustomSizeChange(self):
     # set custom image sizes & view a scale
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     uid1, ext, width, height = self.traverse('image/foo')
     self.assertEqual(width, 23)
     self.assertEqual(height, 23)
     # now let's update the scale dimensions, after which the scale
     # should also have been updated...
     settings.allowed_sizes = [u'foo 42:42']
     uid2, ext, width, height = self.traverse('image/foo')
     self.assertEqual(width, 42)
     self.assertEqual(height, 42)
     self.assertNotEqual(uid1, uid2, 'scale not updated?')
Example #17
0
 def testCustomSizesForNewsItems(self):
     # let's also check custom scales work for "News Item" content
     data = self.getImage()
     folder = self.folder
     newsitem = folder[folder.invokeFactory('News Item', id='newsitem', image=data)]
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     # make sure traversing works with the new sizes
     traverse = folder.REQUEST.traverseName
     foo = traverse(newsitem, 'image_foo')
     self.assertEqual(foo.getContentType(), 'image/png')
     self.assertEqual(foo.data[1:4], 'PNG')
     self.assertEqual(foo.width, 23)
     self.assertEqual(foo.height, 23)
 def testCustomSizesForNewsItems(self):
     # let's also check custom scales work for "News Item" content
     data = self.getImage()
     folder = self.folder
     newsitem = folder[folder.invokeFactory('News Item', id='newsitem', image=data)]
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     # make sure traversing works with the new sizes
     traverse = folder.REQUEST.traverseName
     foo = traverse(newsitem, 'image_foo')
     self.assertEqual(foo.getContentType(), 'image/png')
     self.assertEqual(foo.data[1:4], 'PNG')
     self.assertEqual(foo.width, 23)
     self.assertEqual(foo.height, 23)
 def testAllowedSizes(self):
     # test the defaults
     # for readability, pep8 is not applied to the dict below
     self.assertEqual(getAllowedSizes(), dict(
         large=(768, 768),
         preview=(400, 400),
         mini=(200, 200),
         thumb=(128, 128),
         tile=(64, 64),
         icon=(32, 32),
         listing=(16, 16)))
     # override and test again
     settings = getSettings()
     settings.allowed_sizes = [u'foo bar 23:23']
     self.assertEqual(getAllowedSizes(), dict(foo_bar=(23, 23)))
 def testAllowedSizes(self):
     # test the defaults
     # for readability, pep8 is not applied to the dict below
     self.assertEqual(
         getAllowedSizes(),
         dict(large=(768, 768),
              preview=(400, 400),
              mini=(200, 200),
              thumb=(128, 128),
              tile=(64, 64),
              icon=(32, 32),
              listing=(16, 16)))
     # override and test again
     settings = getSettings()
     settings.allowed_sizes = [u'foo bar 23:23']
     self.assertEqual(getAllowedSizes(), dict(foo_bar=(23, 23)))
 def testPublishCustomSize(self):
     data = self.getImage()
     folder = self.folder
     folder.invokeFactory('Image', id='foo', image=data)
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     # make sure traversing works as expected
     base = '/'.join(folder.getPhysicalPath())
     credentials = self.getCredentials()
     response = self.publish(base + '/foo/image_foo', basic=credentials)
     self.assertEqual(response.getStatus(), 200)
     foo = open(StringIO(response.getBody()))
     self.assertEqual(foo.format, 'PNG')
     self.assertEqual(foo.size, (23, 23))
     # make sure the traversal adapter was call in fact
     self.assertEqual(self.counter, 3)
Example #22
0
 def testPublishCustomSize(self):
     data = self.getImage()
     folder = self.folder
     folder.invokeFactory('Image', id='foo', image=data)
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     # make sure traversing works as expected
     base = '/'.join(folder.getPhysicalPath())
     credentials = self.getCredentials()
     response = self.publish(base + '/foo/image_foo', basic=credentials)
     self.assertEqual(response.getStatus(), 200)
     foo = open(StringIO(response.getBody()))
     self.assertEqual(foo.format, 'PNG')
     self.assertEqual(foo.size, (23, 23))
     # make sure the traversal adapter was call in fact
     self.assertEqual(self.counter, 3)
Example #23
0
 def testCustomSizesWithSpaces(self):
     data = self.getImage()
     folder = self.folder
     image = folder[folder.invokeFactory('Image', id='foo', image=data)]
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo bar 23:23']
     # make sure traversing works with the new sizes
     traverse = folder.REQUEST.traverseName
     foo_bar = traverse(image, 'image_foo_bar')
     self.assertEqual(foo_bar.getContentType(), 'image/png')
     self.assertEqual(foo_bar.data[1:4], 'PNG')
     self.assertEqual(foo_bar.width, 23)
     self.assertEqual(foo_bar.height, 23)
     # also check the generated tag
     url = image.absolute_url() + '/image_foo_bar'
     tag = '<img src="%s" alt="foo" title="foo" height="23" width="23" />'
     self.assertEqual(foo_bar.tag(), tag % url)
 def testCustomSizesWithSpaces(self):
     data = self.getImage()
     folder = self.folder
     image = folder[folder.invokeFactory('Image', id='foo', image=data)]
     # set custom image sizes
     settings = getSettings()
     settings.allowed_sizes = [u'foo bar 23:23']
     # make sure traversing works with the new sizes
     traverse = folder.REQUEST.traverseName
     foo_bar = traverse(image, 'image_foo_bar')
     self.assertEqual(foo_bar.getContentType(), 'image/png')
     self.assertEqual(foo_bar.data[1:4], 'PNG')
     self.assertEqual(foo_bar.width, 23)
     self.assertEqual(foo_bar.height, 23)
     # also check the generated tag
     url = image.absolute_url() + '/image_foo_bar'
     tag = '<img src="%s" alt="foo" title="foo" height="23" width="23" />'
     self.assertEqual(foo_bar.tag(), tag % url)
 def testQualityChange(self):
     settings = getSettings()
     self.image.update(image=self.getImage('image.jpg'))
     data = self.getImage('image.jpg') + '\x00' * (1 << 16)
     # get size of image scaled at default scaling quality
     self.assertEqual(settings.quality, 88)
     from Products.ATContentTypes.content.image import ATImage
     image = ATImage('image').__of__(self.folder)
     image.setImage(data)
     adapter = ImageScaling(image, None)
     img_high_quality = adapter.scale('image', width=100, height=80)
     size_high_quality = img_high_quality.size
     # lower scaling quality and get scaled image's size at that quality
     settings.quality = 20
     self.assertEqual(settings.quality, 20)
     image = ATImage('image').__of__(self.folder)
     image.setImage(data)
     adapter = ImageScaling(image, None)
     img_low_quality = adapter.scale('image', width=100, height=80)
     size_low_quality = img_low_quality.size
     # data should be smaller at lower quality
     self.assertTrue(size_high_quality > size_low_quality)
 def testQualityChange(self):
     settings = getSettings()
     self.image.update(image=self.getImage('image.jpg'))
     data = self.getImage('image.jpg') + '\x00' * (1 << 16)
     # get size of image scaled at default scaling quality
     self.assertEqual(settings.quality, 88)
     from Products.ATContentTypes.content.image import ATImage
     image = ATImage('image').__of__(self.folder)
     image.setImage(data)
     adapter = ImageScaling(image, None)
     img_high_quality = adapter.scale('image', width=100, height=80)
     size_high_quality = img_high_quality.size
     # lower scaling quality and get scaled image's size at that quality
     settings.quality = 20
     self.assertEqual(settings.quality, 20)
     image = ATImage('image').__of__(self.folder)
     image.setImage(data)
     adapter = ImageScaling(image, None)
     img_low_quality = adapter.scale('image', width=100, height=80)
     size_low_quality = img_low_quality.size
     # data should be smaller at lower quality
     self.assertTrue(size_high_quality > size_low_quality)
 def testCustomSizeChange(self):
     data = self.getImage()
     folder = self.folder
     image = folder[folder.invokeFactory('Image', id='foo', image=data)]
     # set custom image sizes & view a scale
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     traverse = folder.REQUEST.traverseName
     foo = traverse(image, 'image_foo')
     self.assertEqual(foo.width, 23)
     self.assertEqual(foo.height, 23)
     # now let's update the scale dimensions, after which the scale
     # should still be the same...
     settings.allowed_sizes = [u'foo 42:42']
     foo = traverse(image, 'image_foo')
     self.assertEqual(foo.width, 23)
     self.assertEqual(foo.height, 23)
     # we first need to trigger recreation of all scales...
     self.portal.portal_atct.recreateImageScales()
     foo = traverse(image, 'image_foo')
     self.assertEqual(foo.width, 42)
     self.assertEqual(foo.height, 42)
     # make sure the traversal adapter was call in fact
     self.assertEqual(self.counter, 3)
Example #28
0
 def testCustomSizeChange(self):
     data = self.getImage()
     folder = self.folder
     image = folder[folder.invokeFactory('Image', id='foo', image=data)]
     # set custom image sizes & view a scale
     settings = getSettings()
     settings.allowed_sizes = [u'foo 23:23']
     traverse = folder.REQUEST.traverseName
     foo = traverse(image, 'image_foo')
     self.assertEqual(foo.width, 23)
     self.assertEqual(foo.height, 23)
     # now let's update the scale dimensions, after which the scale
     # should still be the same...
     settings.allowed_sizes = [u'foo 42:42']
     foo = traverse(image, 'image_foo')
     self.assertEqual(foo.width, 23)
     self.assertEqual(foo.height, 23)
     # we first need to trigger recreation of all scales...
     self.portal.portal_atct.recreateImageScales()
     foo = traverse(image, 'image_foo')
     self.assertEqual(foo.width, 42)
     self.assertEqual(foo.height, 42)
     # make sure the traversal adapter was call in fact
     self.assertEqual(self.counter, 3)
 def testQuality(self):
     self.assertEqual(getQuality(), 88)
     settings = getSettings()
     settings.quality = 42
     self.assertEqual(getQuality(), 42)
 def testQuality(self):
     self.assertEqual(getQuality(), 88)
     settings = getSettings()
     settings.quality = 42
     self.assertEqual(getQuality(), 42)