[Erp5-report] r16678 - in /erp5/trunk/products/ERP5OOo: OOoUtils.py tests/testOOoImport.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Sep 27 20:15:03 CEST 2007


Author: jerome
Date: Thu Sep 27 20:15:03 2007
New Revision: 16678

URL: http://svn.erp5.org?rev=16678&view=rev
Log:
Extend OOoParser so that it's possible to feed the parser with content as
string, not only with a file object.


Modified:
    erp5/trunk/products/ERP5OOo/OOoUtils.py
    erp5/trunk/products/ERP5OOo/tests/testOOoImport.py

Modified: erp5/trunk/products/ERP5OOo/OOoUtils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/OOoUtils.py?rev=16678&r1=16677&r2=16678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/OOoUtils.py (original)
+++ erp5/trunk/products/ERP5OOo/OOoUtils.py Thu Sep 27 20:15:03 2007
@@ -236,6 +236,10 @@
     self.ns = {}
     self.filename = None
 
+  security.declareProtected(Permissions.ImportExportObjects, 'openFromString')
+  def openFromString(self, text_content):
+    return self.openFile(StringIO(text_content))
+
   security.declareProtected(Permissions.ImportExportObjects, 'openFile')
   def openFile(self, file_descriptor):
     """

Modified: erp5/trunk/products/ERP5OOo/tests/testOOoImport.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testOOoImport.py?rev=16678&r1=16677&r2=16678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testOOoImport.py (original)
+++ erp5/trunk/products/ERP5OOo/tests/testOOoImport.py Thu Sep 27 20:15:03 2007
@@ -36,6 +36,7 @@
 from AccessControl.SecurityManagement import newSecurityManager
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 from Products.ERP5Type.tests.Sequence import SequenceList
+from Products.ERP5OOo.OOoUtils import OOoParser
 
 ooodoc_coordinates = ('127.0.0.1', 8008)
 
@@ -198,6 +199,28 @@
     self.assertEquals(1, france.getIntIndex())
 
 
+  # simple OOoParser tests
+  def test_getSpreadSheetMapping(self):
+    parser = OOoParser()
+    parser.openFile(open(makeFilePath('import_data_list.ods'), 'rb'))
+    mapping = parser.getSpreadsheetsMapping()
+    self.assertEquals(['Person'], mapping.keys())
+    person_mapping = mapping['Person']
+    self.assertTrue(isinstance(person_mapping, list))
+    self.assertTrue(102, len(person_mapping))
+    self.assertEquals(person_mapping[0],
+       ['Title', 'First Name', 'Last Name', 'Default Email Text'])
+    self.assertEquals(person_mapping[1],
+       ['John Doe 0', 'John', 'Doe 0', 'john.doe0 at foo.com'])
+  
+  def test_openFromString(self):
+    parser = OOoParser()
+    parser.openFromString(
+        open(makeFilePath('import_data_list.ods'), 'rb').read())
+    mapping = parser.getSpreadsheetsMapping()
+    self.assertEquals(['Person'], mapping.keys())
+
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestOOoImport))




More information about the Erp5-report mailing list