[Erp5-report] r14183 - /erp5/trunk/products/ERP5/tests/testInventoryAPI.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Apr 24 08:56:18 CEST 2007


Author: seb
Date: Tue Apr 24 08:56:15 2007
New Revision: 14183

URL: http://svn.erp5.org?rev=14183&view=rev
Log:
add test for getTrackingList, more tests are required

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

Modified: erp5/trunk/products/ERP5/tests/testInventoryAPI.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testInventoryAPI.py?rev=14183&r1=14182&r2=14183&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testInventoryAPI.py (original)
+++ erp5/trunk/products/ERP5/tests/testInventoryAPI.py Tue Apr 24 08:56:15 2007
@@ -77,6 +77,10 @@
     # for all those tests.
     return 'inventory_api_test'
 
+  def getItemModule(self):
+    """ the apparel fabric module """
+    return getattr(self.getPortal(),'apparel_fabric_item_module')
+
   def afterSetUp(self):
     """set up """
     self.createCategories()
@@ -105,6 +109,8 @@
     self.other_resource = self.getCurrencyModule().newContent(
                                   title='Other Resource',
                                   portal_type='Currency')
+    self.item = self.getItemModule().newContent(title='Item')
+    self.other_item = self.getItemModule().newContent(title='Other Item')
     # create a dummy Rule, to be able to create simulation movements
     rule_tool = self.portal.portal_rules
     if not hasattr(rule_tool, 'default_order_rule'):
@@ -178,8 +184,10 @@
            ) + self.GROUP_CATEGORIES
   
   def getBusinessTemplateList(self):
-    """ erp5_trade is required for transit_simulation_state"""
-    return ('erp5_base', 'erp5_dummy_movement', 'erp5_trade')
+    """ erp5_trade is required for transit_simulation_state
+        erp5_apparel is required for item
+    """
+    return ('erp5_base', 'erp5_dummy_movement', 'erp5_trade', 'erp5_apparel')
 
   # TODO: move this to a base class {{{
   @reindex
@@ -1374,11 +1382,60 @@
                          destination_value=self.node)
     node_uid = self.node.getUid()
     makeMovement(quantity=1)
+    # Test the number of movement for this particular node
     self.assertEquals(getInventoryStat(node_uid=node_uid)[0].stock_uid, 1)
     makeMovement(quantity=3)
     self.assertEquals(getInventoryStat(node_uid=node_uid)[0].stock_uid, 2)
     makeMovement(quantity=5)
     self.assertEquals(getInventoryStat(node_uid=node_uid)[0].stock_uid, 3)
+
+class TestTrackingList(InventoryAPITestCase):
+  """Tests Inventory Stat methods.
+  """
+  def testNodeUid(self):
+    getTrackingList = self.getSimulationTool().getTrackingList
+    start_date = DateTime()
+    def makeMovement(aggregate=None):
+      self._makeMovement(quantity=1, price=1,
+                         aggregate_value=aggregate,
+                         resource_value=self.resource,
+                         start_date = start_date,
+                         source_value=self.other_node,
+                         destination_value=self.node)
+    item_uid = self.item.getUid()
+    other_item_uid = self.other_item.getUid()
+    node_uid = self.node.getUid()
+    self.assertEquals(len(getTrackingList(node_uid=node_uid, 
+                             at_date=start_date)),0)
+    makeMovement(aggregate=self.item)
+    result = getTrackingList(node_uid=node_uid,at_date=start_date)
+    self.assertEquals(len(result),1)
+    self.failIfDifferentSet([x.uid for x in result], [item_uid])
+    makeMovement(aggregate=self.other_item)
+    result = getTrackingList(node_uid=node_uid,at_date=start_date)
+    self.assertEquals(len(result),2)
+    self.failIfDifferentSet([x.uid for x in result], [item_uid, other_item_uid])
+
+  def testSeveralAggregateOnMovement(self):
+    getTrackingList = self.getSimulationTool().getTrackingList
+    start_date = DateTime()
+    def makeMovement(aggregate_list=None):
+      self._makeMovement(quantity=1, price=1,
+                         aggregate_list=aggregate_list,
+                         resource_value=self.resource,
+                         start_date = start_date,
+                         source_value=self.other_node,
+                         destination_value=self.node)
+    item_uid = self.item.getUid()
+    other_item_uid = self.other_item.getUid()
+    node_uid = self.node.getUid()
+    self.assertEquals(len(getTrackingList(node_uid=node_uid, 
+                             at_date=start_date)),0)
+    makeMovement(aggregate_list=[self.item.getRelativeUrl(),
+                                 self.other_item.getRelativeUrl()])
+    result = getTrackingList(node_uid=node_uid,at_date=start_date)
+    self.assertEquals(len(result),2)
+    self.failIfDifferentSet([x.uid for x in result], [item_uid, other_item_uid])
 
 
 if __name__ == '__main__':
@@ -1393,6 +1450,7 @@
     suite.addTest(unittest.makeSuite(TestInventoryStat))
     suite.addTest(unittest.makeSuite(TestNextNegativeInventoryDate))
     suite.addTest(unittest.makeSuite(TestInventoryStat))
+    suite.addTest(unittest.makeSuite(TestTrackingList))
     return suite
 
 # vim: foldmethod=marker




More information about the Erp5-report mailing list