[Erp5-report] r41840 hugo.maia - in /erp5/trunk/utils/cloudooo/cloudooo: ./ granulate/ inte...

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Dec 28 20:15:43 CET 2010


Author: hugo.maia
Date: Tue Dec 28 20:15:43 2010
New Revision: 41840

URL: http://svn.erp5.org?rev=41840&view=rev
Log:
Add getTableMatrix for oogranulate

Modified:
    erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt
    erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py
    erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py
    erp5/trunk/utils/cloudooo/cloudooo/tests/testInterface.py
    erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py

Modified: erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt?rev=41840&r1=41839&r2=41840&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt [utf8] Tue Dec 28 20:15:43 2010
@@ -1,7 +1,7 @@
 1.0.10 (unreleased)
 ===================
   - Refactor code to use json instead of jsonpickle.
-  - Add getTableItem and getTableItemList for OOGranulate
+  - Add getTableItem, getTableItemList and getTableMatrix for OOGranulate
   - Add getParagraphItemList and getParagraphItem for OOGranulate
   - Add getImageItemList and getImage for OOGranulate
   - Add OdfDocument

Modified: erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py?rev=41840&r1=41839&r2=41840&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py [utf8] Tue Dec 28 20:15:43 2010
@@ -123,6 +123,23 @@ class OOGranulate(object):
       logger.error(e)
       return None
 
+  def getTableMatrix(self, id):
+    """Returns the table as a matrix"""
+    row_list = self.document.parsed_content.xpath(
+                        '//table:table[@table:name="%s"]/table:table-row' % id,
+                        namespaces=self.document.parsed_content.nsmap)
+    if len(row_list) == 0:
+      return None
+
+    matrix = []
+    for row in row_list:
+      matrix_row = []
+      for cell in row.iterchildren():
+        matrix_row.append(''.join(cell.itertext()))
+      matrix.append(matrix_row)
+    return matrix
+
+
   def getColumnItemList(self, file, table_id):
     """Return the list of columns in the form of (id, title)."""
     raise NotImplementedError

Modified: erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py?rev=41840&r1=41839&r2=41840&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py [utf8] Tue Dec 28 20:15:43 2010
@@ -38,6 +38,9 @@ class ITableGranulator(Interface):
   def getTableItem(id, format):
     """Returns the table into a new 'format' file."""
 
+  def getTableMatrix(self, id):
+    """Returns the table as a matrix."""
+
   def getColumnItemList(file, table_id):
     """Return the list of columns in the form of (id, title)."""
 

Modified: erp5/trunk/utils/cloudooo/cloudooo/tests/testInterface.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/tests/testInterface.py?rev=41840&r1=41839&r2=41840&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/tests/testInterface.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/tests/testInterface.py [utf8] Tue Dec 28 20:15:43 2010
@@ -56,10 +56,11 @@ class TestInterface(unittest.TestCase):
   def testITableGranulator(self):
     """Test if OOGranulate implements ITableGranulator"""
     self.assertEquals(ITableGranulator.implementedBy(OOGranulate), True)
-    method_list = ['getTableItem',
+    method_list = ['getColumnItemList',
                    'getLineItemList',
-                   'getColumnItemList',
-                   'getTableItemList']
+                   'getTableItem',
+                   'getTableItemList',
+                   'getTableMatrix']
     self.assertEquals(ITableGranulator.names(), method_list)
 
   def testITextGranulator(self):

Modified: erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py?rev=41840&r1=41839&r2=41840&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py [utf8] Tue Dec 28 20:15:43 2010
@@ -83,6 +83,24 @@ class TestOOGranulate(cloudoooTestCase):
     table_data = oogranulate.getTableItem('NonExistentTable')
     self.assertEquals(table_data, None)
 
+  def testGetTableMatriz(self):
+    """Test if getTableMatrix() returns the right matrix"""
+    data = open('./data/granulate_table_test.odt').read()
+    oogranulate = OOGranulate(data, 'odt')
+    matrix = [['Name', 'Phone', 'Email'],
+             ['Hugo', '+55 (22) 8888-8888', 'hugomaia at tiolive.com'],
+             ['Rafael', '+55 (22) 9999-9999', 'rafael at tiolive.com']]
+    self.assertEquals(matrix, oogranulate.getTableMatrix('Developers'))
+
+    matrix = [['Product', 'Price'],
+             ['Pizza', 'R$ 25,00'],
+             ['Petit Gateau', 'R$ 10,00'],
+             ['Feijoada', 'R$ 30,00']]
+    self.assertEquals(matrix, oogranulate.getTableMatrix('Prices'))
+
+    self.assertEquals(None, oogranulate.getTableMatrix('Non existent'))
+
+
   def testGetColumnItemList(self):
     """Test if getColumnItemList() returns the right table columns list"""
     self.assertRaises(NotImplementedError, self.oogranulate.getColumnItemList,



More information about the Erp5-report mailing list