[Erp5-report] r12645 - in /erp5/trunk/products/ERP5: Document/ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 13 11:49:44 CET 2007


Author: aurel
Date: Tue Feb 13 11:49:41 2007
New Revision: 12645

URL: http://svn.erp5.org?rev=12645&view=rev
Log:
do not unindex copy of object when building bt, add test for this

Modified:
    erp5/trunk/products/ERP5/Document/BusinessTemplate.py
    erp5/trunk/products/ERP5/tests/testBusinessTemplate.py

Modified: erp5/trunk/products/ERP5/Document/BusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessTemplate.py?rev=12645&r1=12644&r2=12645&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py Tue Feb 13 11:49:41 2007
@@ -435,6 +435,9 @@
     elif getattr(obj, 'meta_type', None) == 'ERP5 PDF Form' :
       if not obj.getProperty('business_template_include_content', 1) :
         obj.deletePdfContent()
+    if getattr(aq_base(obj), 'isIndexable', None) == 1:
+      # prevent from unindexing copy of object
+      setattr(obj, 'isIndexable', 0)
     return obj
 
 class ObjectTemplateItem(BaseTemplateItem):
@@ -898,6 +901,12 @@
         if len(id_list) > 0:
           if include_subobjects:
             self.build_sub_objects(context, id_list, relative_url)
+          else:
+            for id_ in id_list:
+              subobj = obj[id_]
+              if getattr(aq_base(subobj), 'isIndexable', None) == 1:
+                # prevent from unindexing copy of object
+                setattr(subobj, 'isIndexable', 0)
           for id_ in list(id_list):
             obj._delObject(id_)
         if hasattr(aq_base(obj), 'groups'):
@@ -978,6 +987,10 @@
           obj._delObject(id_)
       else:
         for id_ in list(id_list):
+          subobj = obj[id_]
+          if getattr(aq_base(subobj), 'isIndexable', None) == 1:
+            # prevent from unindexing copy of object
+            setattr(subobj, 'isIndexable', 0)
           obj._delObject(id_)
       self._objects[relative_url] = obj
       obj.wl_clearLocks()

Modified: erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBusinessTemplate.py?rev=12645&r1=12644&r2=12645&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBusinessTemplate.py (original)
+++ erp5/trunk/products/ERP5/tests/testBusinessTemplate.py Tue Feb 13 11:49:41 2007
@@ -1910,6 +1910,31 @@
           if hasattr(aq_base(data), 'uid'):
             self.failUnless(data.uid is None)
 
+  def stepCheckUnindexActivityPresence(self, sequence=None, sequence_list=None, **kw):
+    """
+    Check if we have activity for unindex
+    """
+    sql_connection = self.getSQLConnection()
+    sql = "select uid from message_queue where method_id='unindexObject'" # where id='unindexObject'"
+    r = sql_connection.manage_test(sql)
+    self.failUnless(len(r) == 0)
+
+  def stepCheckPathNotUnindexAfterBuild(self, sequence=None, sequence_list=None, **kw):
+    """
+    Check that after a build, not unindex has been done
+    """
+    bc_id = sequence.get('bc_id')
+    bt = sequence.get('current_bt')
+    path = 'portal_categories/'+bc_id
+    category_id_list = sequence.get('category_id_list')
+    portal = self.getPortal()
+    ob = portal.unrestrictedTraverse(path)
+    self.failUnless(ob is not None)
+    for id_ in category_id_list:
+      cat = ob[id_]
+      catalog_ob_list = [x.getObject() for x in portal.portal_catalog(uid=cat.getUid())]
+      self.failUnless(len(catalog_ob_list) > 0)
+
   def stepSetUpdateWorkflowFlagInBusinessTemplate(self, sequence=None, sequence_list=None):
     """
     Set flag for update in Business Template
@@ -2469,6 +2494,36 @@
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self, quiet=quiet)
 
+  def test_091_BusinessTemplateDoNotUnindexObject(self, quiet=quiet, run=un_all_test):
+    if not run: return
+    if not quiet:
+      message = 'Test Business Template Do Not Unindex Object At Build'
+      ZopeTestCase._print('\n%s ' % message)
+      LOG('Testing... ', 0, message)
+    sequence_list = SequenceList()
+    # a simple path
+    sequence_string = '\
+                       CreateBaseCategory \
+                       CreateCategories \
+                       CreateNewBusinessTemplate \
+                       Tic \
+                       UseExportBusinessTemplate \
+                       CheckModifiedBuildingState \
+                       CheckNotInstalledInstallationState \
+                       AddBaseCategoryAsPathToBusinessTemplate \
+                       BuildBusinessTemplate \
+                       CheckUnindexActivityPresence \
+                       Tic \
+                       CheckPathNotUnindexAfterBuild \
+                       CheckBuiltBuildingState \
+                       CheckNotInstalledInstallationState \
+                       CheckObjectPropertiesInBusinessTemplate \
+                       RemoveBaseCategory \
+                       '
+
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
   def test_10_BusinessTemplateWithPathAndJoker1(self, quiet=quiet, run=run_all_test):
     if not run: return
     if not quiet:
@@ -2515,7 +2570,7 @@
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self, quiet=quiet)
 
-  def test_101_BusinessTemplateUninstallWithPathAndJoker1Removed(self, quiet=quiet, run=1): #run_all_test):
+  def test_101_BusinessTemplateUninstallWithPathAndJoker1Removed(self, quiet=quiet, run=run_all_test):
     if not run: return
     if not quiet:
       message = 'Test Business Template Uninstall With Path And Joker * Removed'




More information about the Erp5-report mailing list