[Erp5-report] r17206 - /erp5/trunk/products/ERP5/tests/testOrder.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Oct 26 17:07:31 CEST 2007
Author: romain
Date: Fri Oct 26 17:07:30 2007
New Revision: 17206
URL: http://svn.erp5.org?rev=17206&view=rev
Log:
Check getMovementList behaviour.
Modified:
erp5/trunk/products/ERP5/tests/testOrder.py
Modified: erp5/trunk/products/ERP5/tests/testOrder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testOrder.py?rev=17206&r1=17205&r2=17206&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testOrder.py (original)
+++ erp5/trunk/products/ERP5/tests/testOrder.py Fri Oct 26 17:07:30 2007
@@ -1856,6 +1856,92 @@
sequence_list.play(self)
+ def test_19_getMovementList(self, quiet=0, run=run_all_test):
+ """
+ Check getMovementList.
+ Verify that it manage hierarchical order lines.
+ Check that order cells are returned when defined on a leaf line, and not
+ returned when defined on a non leaf line.
+ """
+ if not run: return
+ sequence_list = SequenceList()
+
+ portal = self.getPortal()
+ order_module = portal.getDefaultModule(portal_type=self.order_portal_type)
+ order = order_module.newContent(portal_type=self.order_portal_type)
+
+ # No line, no movement
+ self.assertEquals(0, len(order.getMovementList()))
+
+ # One line is considered as a movement
+ order_line = order.newContent(portal_type=self.order_line_portal_type)
+ self.assertEquals(1, len(order.getMovementList()))
+
+ # If a sub line is created, its parent should not be considered
+ # as a movement
+ sub_order_line = order_line.newContent(
+ portal_type=self.order_line_portal_type)
+ self.assertEquals(1, len(order.getMovementList()))
+
+ # Create another subline to be sure it increases the line count
+ sub_order_line = order_line.newContent(
+ portal_type=self.order_line_portal_type)
+ self.assertEquals(2, len(order.getMovementList()))
+
+ # Create recursively sub lines, and check that the ovement number
+ # is still the same.
+ for i in range(5):
+ sub_order_line = sub_order_line.newContent(
+ portal_type=self.order_line_portal_type)
+ self.assertEquals(2, len(order.getMovementList()))
+
+ # Create a variated resource
+ resource_module = portal.getDefaultModule(self.resource_portal_type)
+ resource = resource_module.newContent(portal_type=self.resource_portal_type)
+ resource.edit(
+ industrial_phase_list=["phase1", "phase2"],
+ size_list=self.size_list,
+ )
+
+ # Prepare line variation category list
+ order_line_vcl = []
+ resource_vbcl = resource.getVariationBaseCategoryList()
+ for vbc in resource_vbcl:
+ resource_vcl = list(resource.getVariationCategoryList(
+ base_category_list=[vbc],
+ omit_individual_variation=0))
+ resource_vcl.sort()
+ order_line_vcl.extend(self.splitList(resource_vcl)[0])
+
+ # Create cell on the deepest sub line.
+ # Check that those cells increase the movement count
+ sub_order_line.setResourceValue(resource)
+ sub_order_line.setVariationCategoryList(order_line_vcl)
+ self.assertEquals(1, len(order.getMovementList()))
+
+ base_id = 'movement'
+ cell_key_list = list(sub_order_line.getCellKeyList(base_id=base_id))
+ cell_key_list.sort()
+ for cell_key in cell_key_list:
+ cell = sub_order_line.newCell(base_id=base_id,
+ portal_type=self.order_cell_portal_type,
+ *cell_key)
+ self.assertEquals(2-1+len(cell_key_list), len(order.getMovementList()))
+
+ # Check that cells defined on a non leaf line are not returned.
+ order_line.setResourceValue(resource)
+ order_line.setVariationCategoryList(order_line_vcl)
+ self.assertEquals(2-1+len(cell_key_list), len(order.getMovementList()))
+
+ base_id = 'movement'
+ cell_key_list = list(order_line.getCellKeyList(base_id=base_id))
+ cell_key_list.sort()
+ for cell_key in cell_key_list:
+ cell = order_line.newCell(base_id=base_id,
+ portal_type=self.order_cell_portal_type,
+ *cell_key)
+ self.assertEquals(2-1+len(cell_key_list), len(order.getMovementList()))
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestOrder))
More information about the Erp5-report
mailing list