[Erp5-report] r35265 nicolas - /erp5/trunk/products/ERP5OOo/tests/testIngestion.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed May 12 19:54:08 CEST 2010


Author: nicolas
Date: Wed May 12 19:54:07 2010
New Revision: 35265

URL: http://svn.erp5.org?rev=35265&view=rev
Log:
Improve test:
 * use _getConversionServerDict to setup preference
 * use lxml to parse xml documents
 * use OOoBuilder to extract content from ODF archive

Modified:
    erp5/trunk/products/ERP5OOo/tests/testIngestion.py

Modified: erp5/trunk/products/ERP5OOo/tests/testIngestion.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testIngestion.py?rev=35265&r1=35264&r2=35265&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testIngestion.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testIngestion.py [utf8] Wed May 12 19:54:07 2010
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 ##############################################################################
 #
-# Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.
+# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
 #                    Bartek Gorny <bg at erp5.pl>
 #                    Jean-Paul Smets <jp at nexedi.com>
 #                    Ivan Tyagov <ivan at nexedi.com>
@@ -31,21 +31,20 @@
 
 import unittest
 import os, cStringIO, zipfile
-from xml.dom.minidom import parseString
+from lxml import etree
 import transaction
 from Testing import ZopeTestCase
 from DateTime import DateTime
 from AccessControl.SecurityManagement import newSecurityManager
 from Products.ERP5Type.Utils import convertToUpperCase
-from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase,\
+                                                       _getConversionServerDict
 from Products.ERP5Type.tests.Sequence import SequenceList
 from Products.ERP5Type.tests.utils import FileUpload
 from Products.ERP5OOo.Document.OOoDocument import ConversionError
+from Products.ERP5OOo.OOoUtils import OOoBuilder
 from zLOG import LOG, INFO, ERROR
 from Products.CMFCore.utils import getToolByName
-
-# Define the conversion server host
-conversion_server_host = ('127.0.0.1', 8008)
 
 # test files' home
 TEST_FILES_HOME = os.path.join(os.path.dirname(__file__), 'test_document')
@@ -125,8 +124,9 @@
 
   def setSystemPreference(self):
     default_pref = self.portal.portal_preferences.default_site_preference
-    default_pref.setPreferredOoodocServerAddress(conversion_server_host[0])
-    default_pref.setPreferredOoodocServerPortNumber(conversion_server_host[1])
+    conversion_dict = _getConversionServerDict()
+    default_pref.setPreferredOoodocServerAddress(conversion_dict['hostname'])
+    default_pref.setPreferredOoodocServerPortNumber(conversion_dict['port'])
     default_pref.setPreferredDocumentFileNameRegularExpression(FILE_NAME_REGULAR_EXPRESSION)
     default_pref.setPreferredDocumentReferenceRegularExpression(REFERENCE_REGULAR_EXPRESSION)
     if default_pref.getPreferenceState() != 'global':
@@ -684,18 +684,15 @@
     # need oood for getting/setting metadata...
     document = self.getDocument('one')
     newcontent = document.getBaseData()
-    cs = cStringIO.StringIO()
-    cs.write(str(newcontent))
-    z = zipfile.ZipFile(cs)
-    s = z.read('meta.xml')
-    xmlob = parseString(s)
-    title = xmlob.getElementsByTagName('dc:title')[0].childNodes[0].data
-    self.assertEquals(title, u'another title')
-    subject = xmlob.getElementsByTagName('meta:keyword')[0].childNodes[0].data
+    builder = OOoBuilder(newcontent)
+    xml_tree = etree.fromstring(builder.extract('meta.xml'))
+    title = xml_tree.find('*/{%s}title' % xml_tree.nsmap['dc']).text
+    self.assertEquals(title, 'another title')
+    subject = xml_tree.find('*/{%s}keyword' % xml_tree.nsmap['meta']).text
     self.assertEquals(subject, u'another subject')
-    description = xmlob.getElementsByTagName('dc:description')[0].childNodes[0].data
+    description = xml_tree.find('*/{%s}description' % xml_tree.nsmap['dc']).text
     self.assertEquals(description, u'another description')
-    
+
   def stepIngestTextFormats(self, sequence=None, sequence_list=None, **kw):
     """
       ingest all supported text formats
@@ -1010,8 +1007,9 @@
     if not run: return
     if not quiet: printAndLog('test_01_PreferenceSetup')
     preference_tool = self.portal.portal_preferences
-    self.assertEquals(preference_tool.getPreferredOoodocServerAddress(), conversion_server_host[0])
-    self.assertEquals(preference_tool.getPreferredOoodocServerPortNumber(), conversion_server_host[1])
+    conversion_dict = _getConversionServerDict()
+    self.assertEquals(preference_tool.getPreferredOoodocServerAddress(), conversion_dict['hostname'])
+    self.assertEquals(preference_tool.getPreferredOoodocServerPortNumber(), conversion_dict['port'])
     self.assertEquals(preference_tool.getPreferredDocumentFileNameRegularExpression(), FILE_NAME_REGULAR_EXPRESSION)
     self.assertEquals(preference_tool.getPreferredDocumentReferenceRegularExpression(), REFERENCE_REGULAR_EXPRESSION)
     




More information about the Erp5-report mailing list