[Erp5-report] r12003 - in /erp5/trunk/products/ERP5: Tool/ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jan 11 10:45:54 CET 2007


Author: jerome
Date: Thu Jan 11 10:45:51 2007
New Revision: 12003

URL: http://svn.erp5.org?rev=12003&view=rev
Log:
pass group_by_expression to buildSQLQuery
add a new getInventoryList test

Modified:
    erp5/trunk/products/ERP5/Tool/SimulationTool.py
    erp5/trunk/products/ERP5/tests/testInventoryAPI.py

Modified: erp5/trunk/products/ERP5/Tool/SimulationTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/SimulationTool.py?rev=12003&r1=12002&r2=12003&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/SimulationTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/SimulationTool.py Thu Jan 11 10:45:51 2007
@@ -454,7 +454,7 @@
       if len(group_by_expression_list):
         # Always group by resource
         group_by_expression_list.append('%s.resource_uid' % table)
-        sql_kw['group_by_expression'] = ', '.join(group_by_expression_list)
+        new_kw['group_by_expression'] = ', '.join(group_by_expression_list)
 
       sql_kw.update(self.portal_catalog.buildSQLQuery(**new_kw))
       return sql_kw

Modified: erp5/trunk/products/ERP5/tests/testInventoryAPI.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testInventoryAPI.py?rev=12003&r1=12002&r2=12003&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testInventoryAPI.py (original)
+++ erp5/trunk/products/ERP5/tests/testInventoryAPI.py Thu Jan 11 10:45:51 2007
@@ -77,6 +77,7 @@
     
     self.section = self._makeOrganisation(title='Section')
     self.node = self._makeOrganisation(title='Node')
+    self.other_node = self._makeOrganisation(title='Other Node')
     self.payment_node = self.section.newContent(
                                   title='Payment Node',
                                   portal_type='Bank Account')
@@ -497,6 +498,34 @@
 class TestInventoryList(InventoryAPITestCase):
   """Tests getInventoryList methods.
   """
+  def test_ReturnedTypeIsList(self):
+    """Inventory List returns a sequence object""" 
+    getInventoryList = self.getSimulationTool().getInventoryList
+    inventory_list = getInventoryList()
+    self.assertEquals(str(inventory_list.__class__),
+                    'Shared.DC.ZRDB.Results.Results')
+    # the brain is InventoryListBrain
+    self.assert_('InventoryListBrain' in
+          [c.__name__ for c in inventory_list._class.__bases__])
+    # default is an empty list
+    self.assertEquals(0, len(inventory_list))
+
+  def test_GroupByNode(self):
+    getInventoryList = self.getSimulationTool().getInventoryList
+    self._makeMovement(quantity=100)
+    self._makeMovement(destination_value=self.other_node, quantity=100)
+    self._makeMovement(destination_value=None, quantity=100)
+    inventory_list = getInventoryList(group_by_node=1)
+    self.assertEquals(3, len(inventory_list))
+    self.assertEquals([r for r in inventory_list if r.node_relative_url ==
+                  self.node.getRelativeUrl()][0].inventory, 100)
+    self.assertEquals([r for r in inventory_list if r.node_relative_url ==
+                  self.other_node.getRelativeUrl()][0].inventory, 100)
+    self.assertEquals([r for r in inventory_list if r.node_relative_url ==
+                  self.mirror_node.getRelativeUrl()][0].inventory, -300)
+
+  # TODO group by mirror_node, section, mirror_section, payment, resource
+  # ? and maybe project, function, portal_type ?
 
 class TestMovementHistoryList(InventoryAPITestCase):
   """Tests Movement history list methods.




More information about the Erp5-report mailing list