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

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Mar 4 17:59:00 CET 2008


Author: vincent
Date: Tue Mar  4 17:58:59 2008
New Revision: 19671

URL: http://svn.erp5.org?rev=19671&view=rev
Log:
Add a test for getTrackingList's date parameters.

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=19671&r1=19670&r2=19671&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testInventoryAPI.py (original)
+++ erp5/trunk/products/ERP5/tests/testInventoryAPI.py Tue Mar  4 17:58:59 2008
@@ -1525,6 +1525,57 @@
     self.assertEquals(len(result),2)
     self.failIfDifferentSet([x.uid for x in result], [item_uid, other_item_uid])
 
+  def testDates(self):
+    """
+      Test different dates parameters of getTrackingList.
+    """
+    getTrackingList = self.getSimulationTool().getTrackingList
+    now = DateTime()
+    node_1 = self._makeOrganisation(title='Node 1')
+    node_2 = self._makeOrganisation(title='Node 2')
+    node_3 = self._makeOrganisation(title='Node 3')
+    date_0 = now - 4 # Before first movement
+    date_1 = now - 3 # First movement
+    date_2 = now - 2 # Between both movements
+    date_3 = now - 1 # Second movement
+    date_4 = now     # After last movement
+    self._makeMovement(quantity=1, price=1,
+                       aggregate_value=self.item,
+                       resource_value=self.resource,
+                       start_date=date_1,
+                       source_value=node_2,
+                       destination_value=node_1)
+    self._makeMovement(quantity=1, price=1,
+                       aggregate_value=self.item,
+                       resource_value=self.resource,
+                       start_date=date_3,
+                       source_value=node_3,
+                       destination_value=node_2)
+    node_1_uid = node_1.getUid()
+    node_2_uid = node_2.getUid()
+    date_location_dict = {
+      date_0: {'at_date': None,       'to_date': None},
+      date_1: {'at_date': node_1_uid, 'to_date': None},
+      date_2: {'at_date': node_1_uid, 'to_date': node_1_uid},
+      date_3: {'at_date': node_2_uid, 'to_date': node_1_uid},
+      date_4: {'at_date': node_2_uid, 'to_date': node_2_uid}
+    }
+    node_uid_to_node_number = {
+      node_1_uid: 1,
+      node_2_uid: 2
+    }
+    for date, location_dict in date_location_dict.iteritems():
+      for param_id, location_uid in location_dict.iteritems():
+        param_dict = {param_id: date}
+        uid_list = [x.node_uid for x in getTrackingList(aggregate_value=self.item, **param_dict)]
+        if location_uid is None:
+          self.assertEqual(len(uid_list), 0)
+        else:
+          self.assertEqual(len(uid_list), 1)
+          self.assertEqual(uid_list[0], location_uid,
+                           '%s=now - %i, aggregate should be at node %i but is at node %i' % \
+                           (param_id, now - date, node_uid_to_node_number[location_uid], node_uid_to_node_number[uid_list[0]]))
+
 class TestInventoryDocument(InventoryAPITestCase):
   """ Test impact of creating full inventories of stock points on inventory
   lookup. This is an optimisation to regular inventory system to avoid




More information about the Erp5-report mailing list