From 3e886e8622ae11cd6272d51dbb65f9098892665a Mon Sep 17 00:00:00 2001 From: Nicolas Delaby <nicolas@nexedi.com> Date: Wed, 12 May 2010 17:54:07 +0000 Subject: [PATCH] Improve test: * use _getConversionServerDict to setup preference * use lxml to parse xml documents * use OOoBuilder to extract content from ODF archive git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@35265 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5OOo/tests/testIngestion.py | 38 ++++++++++++-------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/product/ERP5OOo/tests/testIngestion.py b/product/ERP5OOo/tests/testIngestion.py index 2b66b14485..864b5905a7 100644 --- a/product/ERP5OOo/tests/testIngestion.py +++ b/product/ERP5OOo/tests/testIngestion.py @@ -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@erp5.pl> # Jean-Paul Smets <jp@nexedi.com> # Ivan Tyagov <ivan@nexedi.com> @@ -31,22 +31,21 @@ 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') FILE_NAME_REGULAR_EXPRESSION = "(?P<reference>[A-Z&é@{]{3,7})-(?P<language>[a-z]{2})-(?P<version>[0-9]{3})" @@ -125,8 +124,9 @@ class TestIngestion(ERP5TypeTestCase): 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 @@ class TestIngestion(ERP5TypeTestCase): # 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 @@ class TestIngestion(ERP5TypeTestCase): 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) -- 2.30.9