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

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Sep 6 19:01:14 CEST 2006


Author: seb
Date: Wed Sep  6 19:01:12 2006
New Revision: 9723

URL: http://svn.erp5.org?rev=9723&view=rev
Log:
make sure that if we give a list of object to update, then we will not erase other objects

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=9723&r1=9722&r2=9723&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py Wed Sep  6 19:01:12 2006
@@ -3943,11 +3943,15 @@
 
       return modified_object_list
 
-    def _install(self, force=1, object_to_update={}, **kw):
+    def _install(self, force=1, object_to_update=None, **kw):
       """
         Install a new Business Template, if force, all will be upgraded or installed
         otherwise depends of dict object_to_update
       """
+      if object_to_update is not None:
+        force=0
+      else:
+        object_to_update = {}
 
       installed_bt = self.portal_templates.getInstalledBusinessTemplate(
                                                            self.getTitle())

Modified: erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBusinessTemplate.py?rev=9723&r1=9722&r2=9723&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBusinessTemplate.py (original)
+++ erp5/trunk/products/ERP5/tests/testBusinessTemplate.py Wed Sep  6 19:01:12 2006
@@ -972,6 +972,46 @@
     catalog.filter_dict[method_id]['expression_instance'] = expr_instance
     catalog.filter_dict[method_id]['type'] = []
 
+  def stepCreateNewCatalogMethod(self, sequence=None, sequence_list=None, **kw):
+    """
+    Create ZSQL Method into catalog
+    """
+    pc = self.getCatalogTool()
+    catalog = pc._getOb('erp5_mysql', None)
+    method_id = "z_another_fake_method"
+    addSQLMethod =catalog.manage_addProduct['ZSQLMethods'].manage_addZSQLMethod
+    addSQLMethod(id=method_id,title='', connection_id='test test', arguments='', template='')
+    zsql_method = catalog._getOb(method_id, None)
+    self.failUnless(zsql_method is not None)
+    sequence.edit(another_zsql_method_id = method_id)
+    # set this method in update_object properties of catalog
+    sql_uncatalog_object = list(catalog.sql_uncatalog_object)
+    sql_uncatalog_object.append(method_id)
+    sql_uncatalog_object.sort()
+    catalog.sql_uncatalog_object = tuple(sql_uncatalog_object)
+
+  def stepChangePreviousCatalogMethod(self, sequence=None, sequence_list=None, **kw):
+    """
+    Create ZSQL Method into catalog
+    """
+    pc = self.getCatalogTool()
+    catalog = pc._getOb('erp5_mysql', None)
+    method_id = sequence.get('zsql_method_id')
+    previous_method = catalog._getOb(method_id,None)
+    self.assertEquals(previous_method.title,'')
+    previous_method.title='toto'
+    self.assertEquals(previous_method.title,'toto')
+
+  def stepCheckCatalogMethodChangeKept(self, sequence=None, sequence_list=None, **kw):
+    """
+    Create ZSQL Method into catalog
+    """
+    pc = self.getCatalogTool()
+    catalog = pc._getOb('erp5_mysql', None)
+    method_id = sequence.get('zsql_method_id')
+    previous_method = catalog._getOb(method_id,None)
+    self.assertEquals(previous_method.title,'toto')
+
   def stepAddCatalogMethodToBusinessTemplate(self, sequence=None, sequence_list=None, **kw):
     """
     Add catalog method into the business template
@@ -981,6 +1021,18 @@
     method_id = sequence.get('zsql_method_id', None)
     self.failUnless(method_id is not None)
     bt.edit(template_catalog_method_id_list=['erp5_mysql/'+method_id])
+
+  def stepAddNewCatalogMethodToBusinessTemplate(self, sequence=None, sequence_list=None, **kw):
+    """
+    Add catalog method into the business template
+    """
+    bt = sequence.get('current_bt', None)
+    self.failUnless(bt is not None)
+    method_id = sequence.get('zsql_method_id', None)
+    self.failUnless(method_id is not None)
+    another_method_id = sequence.get('another_zsql_method_id', None)
+    bt.edit(template_catalog_method_id_list=['erp5_mysql/'+method_id,
+            'erp5_mysql/'+another_method_id])
 
   def stepCheckCatalogMethodExists(self, sequence=None, sequence_list=None, **kw):
     """
@@ -1559,6 +1611,14 @@
     import_bt = sequence.get('import_bt')
     import_bt.install(force=1)
 
+  def stepPartialCatalogMethodInstall(self, sequence=None, sequence_list=None, **kw):
+    """
+    Install importzed business template
+    """
+    import_bt = sequence.get('import_bt')
+    object_to_update = {'portal_catalog/erp5_mysql/z_another_fake_method':'install'}
+    import_bt.install(object_to_update=object_to_update)
+
   def stepCreateNewBusinessTemplate(self, sequence=None, sequence_list=None, **kw):
     """
     Create a new Business Template
@@ -3264,6 +3324,50 @@
                        '
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self, quiet=quiet)
+
+  def test_31_BusinessTemplateWithCatalogMethod(self, quiet=quiet, run=run_all_test):
+    if not run: return
+    if not quiet:
+      message = 'Test that we keep local changes if we specify a list of objects to update'
+      ZopeTestCase._print('\n%s ' % message)
+      LOG('Testing... ', 0, message)
+    sequence_list = SequenceList()
+    sequence_string = '\
+                       CreateCatalogMethod \
+                       CreateKeysAndTable \
+                       CreateNewBusinessTemplate \
+                       UseExportBusinessTemplate \
+                       AddCatalogMethodToBusinessTemplate \
+                       AddKeysAndTableToBusinessTemplate \
+                       BuildBusinessTemplate \
+                       SaveBusinessTemplate \
+                       RemoveCatalogMethod \
+                       RemoveKeysAndTable \
+                       RemoveBusinessTemplate \
+                       RemoveAllTrashBins \
+                       ImportBusinessTemplate \
+                       UseImportBusinessTemplate \
+                       InstallBusinessTemplate \
+                       Tic \
+                       CreateNewCatalogMethod \
+                       CreateKeysAndTable \
+                       CreateNewBusinessTemplate \
+                       UseExportBusinessTemplate \
+                       AddNewCatalogMethodToBusinessTemplate \
+                       CheckCatalogMethodExists \
+                       AddKeysAndTableToBusinessTemplate \
+                       BuildBusinessTemplate \
+                       SaveBusinessTemplate \
+                       ChangePreviousCatalogMethod \
+                       ImportBusinessTemplate \
+                       UseImportBusinessTemplate \
+                       PartialCatalogMethodInstall \
+                       CheckCatalogMethodChangeKept \
+                       Tic \
+                       '
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
 if __name__ == '__main__':
   framework()
 else:




More information about the Erp5-report mailing list