[Erp5-report] r40112 jm - in /erp5/trunk: bt5/erp5_simulation/SkinTemplateItem/portal_skins...

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Nov 9 15:30:10 CET 2010


Author: jm
Date: Tue Nov  9 15:30:07 2010
New Revision: 40112

URL: http://svn.erp5.org?rev=40112&view=rev
Log:
Fix testRule

Added:
    erp5/trunk/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/RuleMixin_asPredicate.xml
Modified:
    erp5/trunk/bt5/erp5_simulation/bt/revision
    erp5/trunk/products/ERP5/Document/DeliveryRootSimulationRule.py
    erp5/trunk/products/ERP5/Document/DeliverySimulationRule.py
    erp5/trunk/products/ERP5/Document/InvoiceRootSimulationRule.py
    erp5/trunk/products/ERP5/Document/InvoiceSimulationRule.py
    erp5/trunk/products/ERP5/Document/InvoiceTransactionSimulationRule.py
    erp5/trunk/products/ERP5/Document/OrderRootSimulationRule.py
    erp5/trunk/products/ERP5/Document/PaymentSimulationRule.py
    erp5/trunk/products/ERP5/Document/TradeModelSimulationRule.py
    erp5/trunk/products/ERP5/mixin/rule.py
    erp5/trunk/products/ERP5/tests/testRule.py
    erp5/trunk/products/ERP5Legacy/tests/testLegacyRuleOrder.py

Added: erp5/trunk/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/RuleMixin_asPredicate.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/RuleMixin_asPredicate.xml?rev=40112&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/RuleMixin_asPredicate.xml (added)
+++ erp5/trunk/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/RuleMixin_asPredicate.xml [utf8] Tue Nov  9 15:30:07 2010
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>return context.generatePredicate(criterion_property_list=("start_date",))\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>RuleMixin_asPredicate</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Modified: erp5/trunk/bt5/erp5_simulation/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/bt/revision?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/bt/revision [utf8] Tue Nov  9 15:30:07 2010
@@ -1 +1 @@
-144
\ No newline at end of file
+145
\ No newline at end of file

Modified: erp5/trunk/products/ERP5/Document/DeliveryRootSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/DeliveryRootSimulationRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/DeliveryRootSimulationRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/DeliveryRootSimulationRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -29,12 +29,11 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin, MovementGeneratorMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
 
-class DeliveryRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
+class DeliveryRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
   """
   Delivery Rule object make sure an Delivery in the simulation
   is consistent with the real delivery

Modified: erp5/trunk/products/ERP5/Document/DeliverySimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/DeliverySimulationRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/DeliverySimulationRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/DeliverySimulationRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -29,12 +29,11 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin, MovementGeneratorMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
 
-class DeliverySimulationRule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
+class DeliverySimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
   """
   Delivery Rule object make sure an Delivery in the simulation
   is consistent with the real delivery

Modified: erp5/trunk/products/ERP5/Document/InvoiceRootSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/InvoiceRootSimulationRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/InvoiceRootSimulationRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/InvoiceRootSimulationRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -31,12 +31,11 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin, MovementGeneratorMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
 
-class InvoiceRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
+class InvoiceRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
   """
   """
   # CMF Type Definition

Modified: erp5/trunk/products/ERP5/Document/InvoiceSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/InvoiceSimulationRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/InvoiceSimulationRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/InvoiceSimulationRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -29,12 +29,11 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin, MovementGeneratorMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
 
-class InvoiceSimulationRule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
+class InvoiceSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
   """
   Invoicing Rule expand simulation created by a order or delivery rule.
   """

Modified: erp5/trunk/products/ERP5/Document/InvoiceTransactionSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/InvoiceTransactionSimulationRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/InvoiceTransactionSimulationRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/InvoiceTransactionSimulationRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -29,7 +29,6 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin, MovementGeneratorMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
@@ -37,7 +36,7 @@ from Products.ERP5.Document.PredicateMat
 
 
 class InvoiceTransactionSimulationRule(RuleMixin,
-    MovementCollectionUpdaterMixin, Predicate, PredicateMatrix):
+    MovementCollectionUpdaterMixin, PredicateMatrix):
   """
   Invoice Transaction Rule object generates accounting movements for
   each invoice movement based on category membership and other

Modified: erp5/trunk/products/ERP5/Document/OrderRootSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/OrderRootSimulationRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/OrderRootSimulationRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/OrderRootSimulationRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -29,12 +29,11 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin, MovementGeneratorMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
 
-class OrderRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
+class OrderRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
   """
   Order Rule object make sure an Order in the simulation
   is consistent with the real order

Modified: erp5/trunk/products/ERP5/Document/PaymentSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/PaymentSimulationRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/PaymentSimulationRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/PaymentSimulationRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -29,12 +29,11 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin, MovementGeneratorMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
 
-class PaymentSimulationRule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
+class PaymentSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
   """
   Payment Rule generates payment simulation movement from invoice
   transaction simulation movements.

Modified: erp5/trunk/products/ERP5/Document/TradeModelSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/TradeModelSimulationRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/TradeModelSimulationRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/TradeModelSimulationRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -30,12 +30,11 @@ import zope.interface
 from AccessControl import ClassSecurityInfo
 from Acquisition import aq_base
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin, MovementGeneratorMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
 
-class TradeModelSimulationRule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
+class TradeModelSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
   """
     Rule for Trade Model
   """

Modified: erp5/trunk/products/ERP5/mixin/rule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/mixin/rule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/mixin/rule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/mixin/rule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -142,7 +142,7 @@ class MovementGeneratorMixin:
     # and potentially use trade phase for that.... as a way to filter out
 
 
-class RuleMixin:
+class RuleMixin(Predicate):
   """
   Provides generic methods and helper methods to implement
   IRule and IMovementCollectionUpdater.
@@ -186,19 +186,18 @@ class RuleMixin:
                          activate_kw=activate_kw)
     return context.get(id)
 
-  def test(self, *args, **kw):
+  if 0: # XXX-JPS - if people are stupid enough not to configfure predicates,
+        # it is not our role to be clever for them
+        # Rules have a workflow - make sure applicable rule system works
+        # if you wish, add a test here on workflow state to prevent using
+        # rules which are no longer applicable
+   def test(self, *args, **kw):
     """
     If no test method is defined, return False, to prevent infinite loop
-
-    XXX-JPS - I do not understand why 
     """
-    #if not self.getTestMethodId():
-    #  return False # XXX-JPS - if people are stupid enough not to configfure predicates, 
-                   # it is not our role to be clever for them
-                   # Rules have a workflow - make sure applicable rule system works
-                   # if you wish, add a test here on workflow state to prevent using 
-                   # rules which are no longer applicable
-    return Predicate.test(self, *args, **kw)
+    if not self.getTestMethodId():
+      return False
+    return super(RuleMixin, self).test(*args, **kw)
 
   def expand(self, applied_rule, **kw):
     """

Modified: erp5/trunk/products/ERP5/tests/testRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testRule.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testRule.py [utf8] Tue Nov  9 15:30:07 2010
@@ -32,36 +32,49 @@ import transaction
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 from Products.ERP5Type.tests.utils import createZODBPythonScript
 from Products.ERP5.tests.testOrder import TestOrderMixin
-from Products.ERP5.tests.utils import newSimulationExpectedFailure
 
 class TestRuleMixin(TestOrderMixin):
   """
   Test basic rule behaviours
   """
 
+  def createRule(self, base_reference, version, **kw):
+    rule = super(TestRuleMixin, self).getRule(reference=base_reference,
+                                              version='<testRule.')
+    assert rule.getValidationState() == 'draft'
+    parent = rule.getParentValue()
+    rule, = parent.manage_pasteObjects(
+      parent.manage_copyObjects(ids=rule.getId()))
+    rule = parent[rule['new_id']]
+    rule._edit(version='testRule.' + version, **kw)
+    return rule
+
+  def getRule(self, reference):
+    rule = super(TestRuleMixin, self).getRule(reference=reference)
+    assert rule.getVersion().startswith('testRule.')
+    return rule
+
   def afterSetUp(self):
     # delete rules
-    self.getRuleTool().manage_delObjects(
-        ids=list(list(self.getRuleTool().objectIds())))
+    rule_tool = self.portal.portal_rules
+    rule_tool.manage_delObjects(ids=[x.getId() for x in rule_tool.objectValues()
+                                     if x.getVersion().startswith('testRule.')])
     # recreate rules
-    self.getRuleTool().newContent(portal_type="Order Rule",
-        id='default_order_rule',
-        reference='default_order_rule', version='1')
-    delivery_rule = self.getRuleTool().newContent(portal_type="Delivery Rule",
-        id='default_delivery_rule',
-        reference='default_delivery_rule', version='1')
+    self.createRule('default_order_rule', '1')
+    self.createRule('default_delivery_rule', '1')
+    transaction.commit()
+    self.tic()
     # create packing list if necessary
-    pl_module = self.getPortal().getDefaultModule(
-        self.packing_list_portal_type)
+    pl_module = self.portal.getDefaultModule(self.packing_list_portal_type)
     if pl_module.objectCount() == 0:
       # at least one default_delivery_rule should be validated here to
       # confirm Sale Packing List
+      delivery_rule = self.getRule('default_delivery_rule')
       delivery_rule.validate()
       self.pl = self.createPackingList()
       delivery_rule.invalidate()
     else:
-      self.pl = self.getPortal().getDefaultModule(
-          self.packing_list_portal_type).objectValues()[0]
+      self.pl = pl_module.objectValues()[0]
     #delete applied_rule
     self.getSimulationTool().manage_delObjects(
         ids=list(self.getSimulationTool().objectIds()))
@@ -71,8 +84,8 @@ class TestRuleMixin(TestOrderMixin):
 
 
   def beforeTearDown(self):
-    for module in self.getRuleTool(), self.getSimulationTool():
-      module.manage_delObjects(list(module.objectIds()))
+    module = self.getSimulationTool()
+    module.manage_delObjects(list(module.objectIds()))
     transaction.commit()
     self.tic()
 
@@ -92,6 +105,7 @@ class TestRuleMixin(TestOrderMixin):
     pl_module = self.getPortal().getDefaultModule(
         self.packing_list_portal_type)
     pl = pl_module.newContent(portal_type=self.packing_list_portal_type,
+        specialise=self.business_process,
         source_section='group/a', destination_section='group/b')
     pl.newContent(portal_type=self.packing_list_line_portal_type, id='line',
                   quantity=1)
@@ -109,15 +123,13 @@ class TestRule(TestRuleMixin, ERP5TypeTe
   run_all_test = 1
   quiet = 0
 
-  @newSimulationExpectedFailure
   def test_01_ValidatedRuleWithNoScript(self, quiet=quiet, run=run_all_test):
     """
     test that when a rule is validated, but has no script it will not apply
     """
     if not run: return
 
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.validate()
     transaction.commit()
     self.tic()
@@ -126,7 +138,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
       validation_state="validated")[0][0], 1)
     self.assertEquals(len(self.getRuleTool().searchRuleList(self.pl)), 0)
 
-  @newSimulationExpectedFailure
   def test_02_WrongTestMethod(self, quiet=quiet, run=run_all_test):
     """
     test that when a rule's test method returns False, it will not apply
@@ -136,8 +147,7 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin_folder = self.getPortal().portal_skins.custom
     skin = createZODBPythonScript(skin_folder, 'wrong_script', 'rule',
         'return False')
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.setTestMethodId('wrong_script')
     delivery_rule.validate()
     transaction.commit()
@@ -147,7 +157,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
       validation_state="validated")[0][0], 1)
     self.assertEquals(len(self.getRuleTool().searchRuleList(self.pl)), 0)
 
-  @newSimulationExpectedFailure
   def test_03_GoodTestMethod(self, quiet=quiet, run=run_all_test):
     """
     test that when a rule's test method returns True, it will apply
@@ -157,8 +166,7 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin_folder = self.getPortal().portal_skins.custom
     skin = createZODBPythonScript(skin_folder, 'good_script', 'rule',
         'return True')
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.setTestMethodId('good_script')
     delivery_rule.validate()
     transaction.commit()
@@ -168,7 +176,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
       validation_state="validated")[0][0], 1)
     self.assertEquals(len(self.getRuleTool().searchRuleList(self.pl)), 1)
 
-  @newSimulationExpectedFailure
   def test_04_NotValidatedRule(self, quiet=quiet, run=run_all_test):
     """
     test that when a rule is not validated, it will not apply, even if it has
@@ -179,8 +186,7 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin_folder = self.getPortal().portal_skins.custom
     skin = createZODBPythonScript(skin_folder, 'good_script', 'rule',
         'return True')
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.setTestMethodId('good_script')
     delivery_rule.validate()
     delivery_rule.invalidate()
@@ -191,7 +197,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
       validation_state="validated")[0][0], 0)
     self.assertEquals(len(self.getRuleTool().searchRuleList(self.pl)), 0)
 
-  @newSimulationExpectedFailure
   def test_06_WrongDateRange(self, quiet=quiet, run=run_all_test):
     """
     test that when a rule is validated but does not have correct date range,
@@ -202,8 +207,7 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin_folder = self.getPortal().portal_skins.custom
     skin = createZODBPythonScript(skin_folder, 'good_script', 'rule',
         'return True')
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.setTestMethodId('good_script')
     delivery_rule.setStartDateRangeMin('2007-06-01')
     delivery_rule.setStartDateRangeMax('2007-06-04')
@@ -215,7 +219,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
       validation_state="validated")[0][0], 1)
     self.assertEquals(len(self.getRuleTool().searchRuleList(self.pl)), 0)
 
-  @newSimulationExpectedFailure
   def test_07_GoodDateRange(self, quiet=quiet, run=run_all_test):
     """
     test that when a rule is validated and has a correct date range, it will
@@ -226,8 +229,7 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin_folder = self.getPortal().portal_skins.custom
     skin = createZODBPythonScript(skin_folder, 'good_script', 'rule',
         'return True')
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.setTestMethodId('good_script')
     delivery_rule.setStartDateRangeMin('2007-06-01')
     delivery_rule.setStartDateRangeMax('2007-08-01')
@@ -239,7 +241,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
       validation_state="validated")[0][0], 1)
     self.assertEquals(len(self.getRuleTool().searchRuleList(self.pl)), 1)
 
-  @newSimulationExpectedFailure
   def test_08_updateAppliedRule(self, quiet=quiet, run=run_all_test):
     """
     test that when updateAppliedRule is called, the rule with the correct
@@ -254,20 +255,16 @@ class TestRule(TestRuleMixin, ERP5TypeTe
         "return False")
 
     # wrong reference
-    order_rule = self.getRuleTool().searchFolder(
-        reference='default_order_rule')[0]
+    order_rule = self.getRule('default_order_rule')
     order_rule.setTestMethodId('rule_script')
     order_rule.validate()
-    
-    delivery_rule_1 = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+
+    delivery_rule_1 = self.getRule('default_delivery_rule')
     delivery_rule_1.setTestMethodId('rule_script')
     delivery_rule_1.validate()
-    
-    delivery_rule_2 = self.getRuleTool().newContent(
-        portal_type="Delivery Rule", reference='default_delivery_rule',
-        version='2')
-    delivery_rule_2.setTestMethodId('rule_script')
+
+    delivery_rule_2 = self.createRule('default_delivery_rule', '2',
+                                      test_method_id='rule_script')
     delivery_rule_2.validate()
     transaction.commit()
     self.tic()
@@ -283,7 +280,7 @@ class TestRule(TestRuleMixin, ERP5TypeTe
         ids=[self.pl.getCausalityRelatedId()])
 
     # increase version of delivery_rule_1
-    delivery_rule_1.setVersion("3")
+    delivery_rule_1.setVersion("testRule.3")
     transaction.commit()
     self.tic()
 
@@ -294,7 +291,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     self.assertEquals(self.pl.getCausalityRelatedValue().getSpecialise(),
         delivery_rule_1.getRelativeUrl())
 
-  @newSimulationExpectedFailure
   def test_09_expandTwoRules(self, quiet=quiet, run=run_all_test):
     """
     test that when expand is called on a simulation movement, if two rules
@@ -313,20 +309,15 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin = createZODBPythonScript(skin_folder, 'invoice_rule_script', 'rule',
         "return context.getParentValue().getSpecialiseReference() == 'default_delivery_rule'")
 
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.validate()
-    
-    invoicing_rule_1 = self.getRuleTool().newContent(
-        portal_type="Invoicing Rule", reference='default_invoicing_rule',
-        version='1')
-    invoicing_rule_1.setTestMethodId('invoice_rule_script')
+
+    invoicing_rule_1 = self.createRule('default_invoicing_rule', '1',
+                                       test_method_id='invoice_rule_script')
     invoicing_rule_1.validate()
 
-    invoicing_rule_2 = self.getRuleTool().newContent(
-        portal_type="Invoicing Rule", reference='default_invoicing_rule',
-        version='2')
-    invoicing_rule_2.setTestMethodId('invoice_rule_script')
+    invoicing_rule_2 = self.createRule('default_invoicing_rule', '2',
+                                       test_method_id='invoice_rule_script')
     invoicing_rule_2.validate()
 
     # clear simulation
@@ -354,7 +345,7 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     # increase version of other rule, clean simulation and check again
     self.getSimulationTool().manage_delObjects(
         ids=[self.pl.getCausalityRelatedId()])
-    invoicing_rule_1.setVersion('3')
+    invoicing_rule_1.setVersion('testRule.3')
     transaction.commit()
     self.tic()
 
@@ -374,7 +365,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     self.assertEquals(applied_rule.getSpecialise(),
         invoicing_rule_1.getRelativeUrl())
 
-  @newSimulationExpectedFailure
   def test_10_expandAddsRule(self, quiet=quiet, run=run_all_test):
     """
     test that if a rule didn't match previously, and does now, it should apply
@@ -393,15 +383,12 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin = createZODBPythonScript(skin_folder, 'invoice_rule_script', 'rule',
         "return context.getParentValue().getSpecialiseReference() == 'default_delivery_rule'")
 
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.validate()
-    
+
     # create rule with a wrong script
-    invoicing_rule_1 = self.getRuleTool().newContent(
-        portal_type="Invoicing Rule", reference='default_invoicing_rule',
-        version='1')
-    invoicing_rule_1.setTestMethodId('delivery_rule_script')
+    invoicing_rule_1 = self.createRule('default_invoicing_rule', '1',
+                                       test_method_id='delivery_rule_script')
     invoicing_rule_1.validate()
 
     # clear simulation
@@ -444,14 +431,13 @@ class TestRule(TestRuleMixin, ERP5TypeTe
 
     # add more invoicing_rule and test that nothing is changed
     ## same reference, higher version
-    invoicing_rule_n = self.getRuleTool().newContent(
-        portal_type="Invoicing Rule", reference='default_invoicing_rule',
-        version='2', test_method_id='invoice_rule_script')
+    invoicing_rule_n = self.createRule('default_invoicing_rule', '2',
+                                       test_method_id='invoice_rule_script')
     invoicing_rule_n.validate()
     ## different reference, higher version (but version shouldn't matter here)
-    invoicing_rule_2 = self.getRuleTool().newContent(
-        portal_type="Invoicing Rule", reference='default_invoicing_rule_2',
-        version='2', test_method_id='invoice_rule_script')
+    invoicing_rule_2 = self.createRule('default_invoicing_rule', '2',
+                                       reference='default_invoicing_rule_2',
+                                       test_method_id='invoice_rule_script')
     invoicing_rule_2.validate()
     transaction.commit()
     self.tic()
@@ -477,7 +463,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
         invoicing_rule_2.getRelativeUrl())
 
 
-  @newSimulationExpectedFailure
   def test_11_expandRemovesRule(self, quiet=quiet, run=run_all_test):
     """
     test that if a rule matched previously and does not anymore, it should be
@@ -495,14 +480,11 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin = createZODBPythonScript(skin_folder, 'invoice_rule_script', 'rule',
         "return context.getParentValue().getSpecialiseReference() == 'default_delivery_rule'")
 
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.validate()
-    
-    invoicing_rule_1 = self.getRuleTool().newContent(
-        portal_type="Invoicing Rule", reference='default_invoicing_rule',
-        version='1')
-    invoicing_rule_1.setTestMethodId('invoice_rule_script')
+
+    invoicing_rule_1 = self.createRule('default_invoicing_rule', '1',
+                                       test_method_id='invoice_rule_script')
     invoicing_rule_1.validate()
 
     # clear simulation
@@ -608,7 +590,6 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     sub_movement = applied_rule.objectValues()[0]
     self.assertEquals(sub_movement.getDelivery(), self.pl.line.getRelativeUrl())
 
-  @newSimulationExpectedFailure
   def test_12_expandReplacesRule(self, quiet=quiet, run=run_all_test):
     """
     test that if a rule matched previously and does not anymore, and another
@@ -627,20 +608,15 @@ class TestRule(TestRuleMixin, ERP5TypeTe
     skin = createZODBPythonScript(skin_folder, 'invoice_rule_script', 'rule',
         "return context.getParentValue().getSpecialiseReference() == 'default_delivery_rule'")
 
-    delivery_rule = self.getRuleTool().searchFolder(
-        reference='default_delivery_rule')[0]
+    delivery_rule = self.getRule('default_delivery_rule')
     delivery_rule.validate()
-    
-    invoicing_rule_1 = self.getRuleTool().newContent(
-        portal_type="Invoicing Rule", reference='default_invoicing_rule',
-        version='1')
-    invoicing_rule_1.setTestMethodId('invoice_rule_script')
+
+    invoicing_rule_1 = self.createRule('default_invoicing_rule', '1',
+                                       test_method_id='invoice_rule_script')
     invoicing_rule_1.validate()
 
-    invoicing_rule_2 = self.getRuleTool().newContent(
-        portal_type="Invoicing Rule", reference='default_invoicing_rule',
-        version='2')
-    invoicing_rule_2.setTestMethodId('invoice_rule_script')
+    invoicing_rule_2 = self.createRule('default_invoicing_rule', '2',
+                                       test_method_id='invoice_rule_script')
     invoicing_rule_2.validate()
 
     # clear simulation
@@ -711,4 +687,3 @@ def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestRule))
   return suite
-

Modified: erp5/trunk/products/ERP5Legacy/tests/testLegacyRuleOrder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Legacy/tests/testLegacyRuleOrder.py?rev=40112&r1=40111&r2=40112&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Legacy/tests/testLegacyRuleOrder.py [utf8] (original)
+++ erp5/trunk/products/ERP5Legacy/tests/testLegacyRuleOrder.py [utf8] Tue Nov  9 15:30:07 2010
@@ -57,6 +57,7 @@ class TestOrderMixin(SubcontentReindexin
   packing_list_cell_portal_type = 'Sale Packing List Cell'
   delivery_builder_id = 'sale_packing_list_builder'
   size_list = ['Baby','Child/32','Child/34','Man','Woman']
+  business_process = None
 
   def getBusinessTemplateList(self):
     """




More information about the Erp5-report mailing list