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

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Apr 14 15:00:47 CEST 2008


Author: romain
Date: Mon Apr 14 15:00:47 2008
New Revision: 20486

URL: http://svn.erp5.org?rev=20486&view=rev
Log:
Associate the constraint's propertysheet of Inventory, as it is not associated
by default anymore.

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=20486&r1=20485&r2=20486&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testInventoryAPI.py (original)
+++ erp5/trunk/products/ERP5/tests/testInventoryAPI.py Mon Apr 14 15:00:47 2008
@@ -44,6 +44,7 @@
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 from Products.ERP5Type.tests.utils import reindex
 from Products.DCWorkflow.DCWorkflow import ValidationFailed
+from Products.ERP5Type.Base import _aq_reset
 
 class InventoryAPITestCase(ERP5TypeTestCase):
   """Base class for Inventory API Tests {{{
@@ -2010,51 +2011,75 @@
     does not allow such things
     """
     portal = self.getPortal()
-    inventory_module = portal.getDefaultModule(portal_type='Inventory')
-    inventory = inventory_module.newContent(portal_type='Inventory')
-    date = self.DUPLICATE_INVENTORY_DATE
-    inventory.edit(destination_value=self.node,
-                   destination_section_value=self.section,
-                   start_date=date)
-    inventory_line = inventory.newContent(
-        resource_value = self.resource,
-        quantity = 1)
-    self.workflow_tool = portal.portal_workflow
-    workflow_id = 'inventory_workflow'
-    transition_id = 'deliver_action'
-    workflow_id= 'inventory_workflow'
-    self.workflow_tool.doActionFor(inventory, transition_id,
-            wf_id=workflow_id)
-    self.assertEquals('delivered', inventory.getSimulationState())
-    get_transaction().commit()
-    self.tic()
-    
-    # We should detect the previous inventory and fails
-    new_inventory = inventory.Base_createCloneDocument(batch_mode=1)
-    self.assertRaises(ValidationFailed, self.workflow_tool.doActionFor, 
-        new_inventory, transition_id, wf_id=workflow_id)
-    workflow_history = self.workflow_tool.getInfoFor(ob=new_inventory, 
-        name='history', wf_id=workflow_id)
-    workflow_error_message = str(workflow_history[-1]['error_message'])
-    self.assertTrue(workflow_error_message.find('There is already an inventory')>=0)
-
-    # Add a case in order to check a bug when the other inventory at the
-    # same date does not change stock values
-    new_inventory = inventory.Base_createCloneDocument(batch_mode=1)
-    new_inventory.setStartDate(self.DUPLICATE_INVENTORY_DATE + 1)
-    self.workflow_tool.doActionFor(new_inventory, transition_id,
-            wf_id=workflow_id)
-    self.assertEquals('delivered', new_inventory.getSimulationState())
-    get_transaction().commit()
-    self.tic()
-
-    new_inventory = new_inventory.Base_createCloneDocument(batch_mode=1)
-    self.assertRaises(ValidationFailed, self.workflow_tool.doActionFor, 
-        new_inventory, transition_id, wf_id=workflow_id)
-    workflow_history = self.workflow_tool.getInfoFor(ob=new_inventory, 
-        name='history', wf_id=workflow_id)
-    workflow_error_message = str(workflow_history[-1]['error_message'])
-    self.assertTrue(workflow_error_message.find('There is already an inventory')>=0)
+
+    portal_type_name = 'Inventory'
+    property_sheet_name = 'InventoryConstraint'
+    # We set the property sheet on the portal type
+    ti = self.getTypesTool().getTypeInfo(portal_type_name)
+    ti.property_sheet_list = list(ti.property_sheet_list) +\
+                                [property_sheet_name]
+    # reset aq_dynamic cache
+    _aq_reset()
+
+    try:
+      inventory_module = portal.getDefaultModule(portal_type='Inventory')
+      inventory = inventory_module.newContent(portal_type='Inventory')
+      date = self.DUPLICATE_INVENTORY_DATE
+      inventory.edit(destination_value=self.node,
+                     destination_section_value=self.section,
+                     start_date=date)
+      inventory_line = inventory.newContent(
+          resource_value = self.resource,
+          quantity = 1)
+      self.workflow_tool = portal.portal_workflow
+      workflow_id = 'inventory_workflow'
+      transition_id = 'deliver_action'
+      workflow_id= 'inventory_workflow'
+      self.workflow_tool.doActionFor(inventory, transition_id,
+              wf_id=workflow_id)
+      self.assertEquals('delivered', inventory.getSimulationState())
+      get_transaction().commit()
+      self.tic()
+      
+      # We should detect the previous inventory and fails
+      new_inventory = inventory.Base_createCloneDocument(batch_mode=1)
+      self.assertRaises(ValidationFailed, self.workflow_tool.doActionFor, 
+          new_inventory, transition_id, wf_id=workflow_id)
+      workflow_history = self.workflow_tool.getInfoFor(ob=new_inventory, 
+          name='history', wf_id=workflow_id)
+      workflow_error_message = str(workflow_history[-1]['error_message'])
+      self.assertTrue(workflow_error_message.find('There is already an inventory')>=0)
+
+      # Add a case in order to check a bug when the other inventory at the
+      # same date does not change stock values
+      new_inventory = inventory.Base_createCloneDocument(batch_mode=1)
+      new_inventory.setStartDate(self.DUPLICATE_INVENTORY_DATE + 1)
+      self.workflow_tool.doActionFor(new_inventory, transition_id,
+              wf_id=workflow_id)
+      self.assertEquals('delivered', new_inventory.getSimulationState())
+      get_transaction().commit()
+      self.tic()
+
+      new_inventory = new_inventory.Base_createCloneDocument(batch_mode=1)
+      self.assertRaises(ValidationFailed, self.workflow_tool.doActionFor, 
+          new_inventory, transition_id, wf_id=workflow_id)
+      workflow_history = self.workflow_tool.getInfoFor(ob=new_inventory, 
+          name='history', wf_id=workflow_id)
+      workflow_error_message = str(workflow_history[-1]['error_message'])
+      self.assertTrue(workflow_error_message.find('There is already an inventory')>=0)
+    finally:
+      # remove all property sheet we added to type informations
+      ttool = self.getTypesTool()
+      ti = ttool.getTypeInfo(portal_type_name)
+      ps_list = ti.property_sheet_list
+      psheet_list = [property_sheet_name]
+      for psheet in psheet_list:
+        if psheet in ps_list:
+          ps_list.remove(psheet)
+      ti.property_sheet_list = ps_list
+      get_transaction().commit()
+      _aq_reset()
+
 
 def test_suite():
   suite = unittest.TestSuite()




More information about the Erp5-report mailing list