[Erp5-report] r37077 ivan - /erp5/trunk/products/ERP5OOo/tests/testDms.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Jul 13 13:29:53 CEST 2010
Author: ivan
Date: Tue Jul 13 13:29:49 2010
New Revision: 37077
URL: http://svn.erp5.org?rev=37077&view=rev
Log:
Add test for DMS type conversion during objects' traversal.
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=37077&r1=37076&r2=37077&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] Tue Jul 13 13:29:49 2010
@@ -68,6 +68,8 @@ from Products.ERP5Type.tests.utils impor
import os
from threading import Thread
import httplib
+import urllib
+from PIL import Image
QUIET = 0
@@ -1920,7 +1922,76 @@ return 1
image=self.portal.image_module.newContent(portal_type='Image',
content_type='image/png')
self.assertTrue('txt' in image.getTargetFormatList())
-
+
+ def test_convertToImageOnTraversal(self):
+ """
+ Test converting to image all Document portal types on traversal i.e.:
+ - image_module/1?quality=100&display=xlarge&format=jpeg
+ - document_module/1?quality=100&display=large&format=jpeg
+ - etc ...
+ """
+ # Create OOo document
+ ooo_document = self.portal.document_module.newContent(portal_type='Presentation')
+ upload_file = makeFileUpload('TEST-en-003.odp')
+ ooo_document.edit(file=upload_file)
+
+ pdf_document = self.portal.document_module.newContent(portal_type='PDF')
+ upload_file = makeFileUpload('TEST-en-002.pdf')
+ pdf_document.edit(file=upload_file)
+
+ image_document = self.portal.image_module.newContent(portal_type='Image')
+ upload_file = makeFileUpload('TEST-en-002.png')
+ 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 getURLSize(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")
+ f.write(infile.read())
+ f.close()
+ infile.close()
+ image = Image.open(filename)
+ image_size = image.size
+ os.remove(filename)
+ return image_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)
+ for format in ('png', 'jpeg', 'gif',):
+ convert_kw = {'display':display, \
+ 'format':format, \
+ 'quality':100}
+ # Note: due to some image interpolations it's possssible that we have a difference of max_tollerance_px
+ # so allow some tollerance which is produced by respective portal_transform command
+
+ # any OOo based portal type
+ ooo_document_image_size = getURLSize(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 = getURLSize(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 = getURLSize(image_document_url, **convert_kw)
+ self.assertTrue(max(preffered_size_for_display) - max(image_document_image_size) <= max_tollerance_px)
class TestDocumentWithSecurity(TestDocumentMixin):
More information about the Erp5-report
mailing list