[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