[Erp5-report] r43313 ivan - /erp5/trunk/products/ERP5OOo/tests/testDms.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Feb 14 14:36:05 CET 2011
Author: ivan
Date: Mon Feb 14 14:36:05 2011
New Revision: 43313
URL: http://svn.erp5.org?rev=43313&view=rev
Log:
Add Web Page to Image traversal test (expected to fail currently).
Modified:
erp5/trunk/products/ERP5OOo/tests/testDms.py
Modified: erp5/trunk/products/ERP5OOo/tests/testDms.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testDms.py?rev=43313&r1=43312&r2=43313&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] Mon Feb 14 14:36:05 2011
@@ -219,6 +219,40 @@ class TestDocument(TestDocumentMixin):
def clearCache(self):
self.portal.portal_caches.clearAllCache()
+ def getPreferences(self, image_display):
+ preference_tool = self.portal.getPortalObject().portal_preferences
+ height_preference = 'preferred_%s_image_height' % (image_display,)
+ width_preference = 'preferred_%s_image_width' % (image_display,)
+ height = int(preference_tool.getPreference(height_preference))
+ width = int(preference_tool.getPreference(width_preference))
+ return (width, height)
+
+ def getURLSizeList(self, uri, **kw):
+ # __ac=RVJQNVR5cGVUZXN0Q2FzZTo%3D is encoded ERP5TypeTestCase with empty password
+ url = '%s?%s&__ac=%s' %(uri, urllib.urlencode(kw), 'RVJQNVR5cGVUZXN0Q2FzZTo%3D')
+ format=kw.get('format', 'jpeg')
+ infile = urllib.urlopen(url)
+ # save as file with proper incl. format filename (for some reasons PIL uses this info)
+ filename = "%s%stest-image-format-resize.%s" %(os.getcwd(), os.sep, format)
+ f = open(filename, "w")
+ image_data = infile.read()
+ f.write(image_data)
+ f.close()
+ infile.close()
+ file_size = len(image_data)
+ try:
+ from PIL import Image
+ image = Image.open(filename)
+ image_size = image.size
+ except ImportError:
+ from subprocess import Popen, PIPE
+ identify_output = Popen(['identify', filename],
+ stdout=PIPE).communicate()[0]
+ image_size = tuple(map(lambda x:int(x),
+ identify_output.split()[2].split('x')))
+ os.remove(filename)
+ return image_size, file_size
+
## tests
def test_01_HasEverything(self):
@@ -1925,6 +1959,34 @@ return 1
self.assertTrue('odg' in presentation.getTargetFormatList())
self.assertTrue('jpg' in presentation.getTargetFormatList())
self.assertTrue('png' in presentation.getTargetFormatList())
+
+ @expectedFailure
+ def test_convertWebPageToImageOnTraversal(self):
+ """
+ Test converting to image Web Page portal types on traversal i.e.:
+ - web_page_module/1?quality=100&display=xlarge&format=jpeg
+
+ Test Web Page cusing embedded Images into ZODB case (in its HTML body)
+
+ XXX: when fixed should become part of test_convertToImageOnTraversal (only traverse part)
+ """
+ display = 'thumbnail'
+ preffered_size_for_display = self.getPreferences(display)
+ convert_kw = {'display':display,
+ 'format':'jpeg',
+ 'quality':100}
+ web_page_document = self.portal.web_page_module.newContent(portal_type="Web Page")
+ web_page_document.setTextContent('<b> test </b>')
+ self.stepTic()
+
+ web_page_document_url = '%s/%s' %(self.portal.absolute_url(), web_page_document.getRelativeUrl())
+ web_page_image_size, web_page_file_size = self.getURLSizeList(web_page_document_url, **convert_kw)
+ self.assertTrue(max(preffered_size_for_display) - max(web_page_image_size) <= 1)
+
+ # set embedded Image which exists in ERP5 and check we can produce a thuumbnail of a Web Page
+ web_page_document.setTextContent('<b> test </b><img src="images/favourite.png"/>')
+ self.stepTic()
+ web_page_image_size, web_page_file_size = self.getURLSizeList(web_page_document_url, **convert_kw)
def test_convertToImageOnTraversal(self):
"""
@@ -1949,46 +2011,13 @@ return 1
image_document.edit(file=upload_file)
self.stepTic()
- def getPreferences(image_display):
- preference_tool = self.portal.getPortalObject().portal_preferences
- height_preference = 'preferred_%s_image_height' % (image_display,)
- width_preference = 'preferred_%s_image_width' % (image_display,)
- height = int(preference_tool.getPreference(height_preference))
- width = int(preference_tool.getPreference(width_preference))
- return (width, height)
-
- def getURLSizeList(uri, **kw):
- # __ac=RVJQNVR5cGVUZXN0Q2FzZTo%3D is encoded ERP5TypeTestCase with empty password
- url = '%s?%s&__ac=%s' %(uri, urllib.urlencode(kw), 'RVJQNVR5cGVUZXN0Q2FzZTo%3D')
- format=kw.get('format', 'jpeg')
- infile = urllib.urlopen(url)
- # save as file with proper incl. format filename (for some reasons PIL uses this info)
- filename = "%s%stest-image-format-resize.%s" %(os.getcwd(), os.sep, format)
- f = open(filename, "w")
- image_data = infile.read()
- f.write(image_data)
- f.close()
- infile.close()
- file_size = len(image_data)
- try:
- from PIL import Image
- image = Image.open(filename)
- image_size = image.size
- except ImportError:
- from subprocess import Popen, PIPE
- identify_output = Popen(['identify', filename],
- stdout=PIPE).communicate()[0]
- image_size = tuple(map(lambda x:int(x),
- identify_output.split()[2].split('x')))
- os.remove(filename)
- return image_size, file_size
-
ooo_document_url = '%s/%s' %(self.portal.absolute_url(), ooo_document.getRelativeUrl())
pdf_document_url = '%s/%s' %(self.portal.absolute_url(), pdf_document.getRelativeUrl())
image_document_url = '%s/%s' %(self.portal.absolute_url(), image_document.getRelativeUrl())
+
for display in ('nano', 'micro', 'thumbnail', 'xsmall', 'small', 'medium', 'large', 'xlarge',):
max_tollerance_px = 1
- preffered_size_for_display = getPreferences(display)
+ preffered_size_for_display = self.getPreferences(display)
for format in ('png', 'jpeg', 'gif',):
convert_kw = {'display':display, \
'format':format, \
@@ -1997,15 +2026,15 @@ return 1
# so allow some tollerance which is produced by respective portal_transform command
# any OOo based portal type
- ooo_document_image_size, ooo_document_file_size = getURLSizeList(ooo_document_url, **convert_kw)
+ ooo_document_image_size, ooo_document_file_size = self.getURLSizeList(ooo_document_url, **convert_kw)
self.assertTrue(max(preffered_size_for_display) - max(ooo_document_image_size) <= max_tollerance_px)
# PDF
- pdf_document_image_size, pdf_document_file_size = getURLSizeList(pdf_document_url, **convert_kw)
+ pdf_document_image_size, pdf_document_file_size = self.getURLSizeList(pdf_document_url, **convert_kw)
self.assertTrue(max(preffered_size_for_display) - max(pdf_document_image_size) <= max_tollerance_px)
# Image
- image_document_image_size, image_document_file_size = getURLSizeList(image_document_url, **convert_kw)
+ image_document_image_size, image_document_file_size = self.getURLSizeList(image_document_url, **convert_kw)
self.assertTrue(max(preffered_size_for_display) - max(image_document_image_size) <= max_tollerance_px)
# test changing image quality will decrease its file size
@@ -2013,13 +2042,13 @@ return 1
convert_kw = {'display':'xlarge', \
'format':'jpeg', \
'quality':100}
- image_document_image_size_100p,image_document_file_size_100p = getURLSizeList(url, **convert_kw)
+ image_document_image_size_100p,image_document_file_size_100p = self.getURLSizeList(url, **convert_kw)
# decrease in quality should decrease its file size
convert_kw['quality'] = 5.0
- image_document_image_size_5p,image_document_file_size_5p = getURLSizeList(url, **convert_kw)
+ image_document_image_size_5p,image_document_file_size_5p = self.getURLSizeList(url, **convert_kw)
# removing quality should enable defaults settings which should be reasonable between 5% and 100%
del convert_kw['quality']
- image_document_image_size_no_quality,image_document_file_size_no_quality = getURLSizeList(url, **convert_kw)
+ image_document_image_size_no_quality,image_document_file_size_no_quality = self.getURLSizeList(url, **convert_kw)
# check file sizes
self.assertTrue(image_document_file_size_100p > image_document_file_size_no_quality and \
image_document_file_size_no_quality > image_document_file_size_5p)
More information about the Erp5-report
mailing list