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

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Oct 6 21:52:16 CEST 2010


Author: kazuhiko
Date: Wed Oct  6 21:52:15 2010
New Revision: 38936

URL: http://svn.erp5.org?rev=38936&view=rev
Log:
if a base category is removed, it should be listed in 'reinstall business template' listbox, before it raised an Exception.

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=38936&r1=38935&r2=38936&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] Wed Oct  6 21:52:15 2010
@@ -1517,8 +1517,14 @@ class CategoryTemplateItem(ObjectTemplat
     BaseTemplateItem.build(self, context, **kw)
     p = context.getPortalObject()
     for relative_url in self._archive.keys():
-      obj = p.unrestrictedTraverse(relative_url)
-      obj = obj._getCopy(context)
+      try:
+        obj = p.unrestrictedTraverse(relative_url)
+        obj = obj._getCopy(context)
+      except (KeyError, AttributeError):
+        if self.is_bt_for_diff:
+          continue
+        else:
+          raise ValueError, "%s not found" % relative_url
       _recursiveRemoveUid(obj)
       obj = self.removeProperties(obj, 1)
       include_sub_categories = obj.__of__(context).getProperty('business_template_include_sub_categories', 0)

Modified: erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBusinessTemplate.py?rev=38936&r1=38935&r2=38936&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testBusinessTemplate.py [utf8] Wed Oct  6 21:52:15 2010
@@ -3474,6 +3474,37 @@ class TestBusinessTemplate(ERP5TypeTestC
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self, quiet=quiet)
 
+  def test_06_BusinessTemplateReInstallWithBaseCategory(self, quiet=quiet, run=run_all_test):
+    if not run: return
+    if not quiet:
+      message = 'Test Business Template reinstall after removing Base Category'
+      ZopeTestCase._print('\n%s ' % message)
+      LOG('Testing... ', 0, message)
+    sequence_list = SequenceList()
+    sequence_string = '\
+                       CreateBaseCategory \
+                       CreateNewBusinessTemplate \
+                       UseExportBusinessTemplate \
+                       AddBaseCategoryToBusinessTemplate \
+                       CheckModifiedBuildingState \
+                       CheckNotInstalledInstallationState \
+                       BuildBusinessTemplate \
+                       CheckBuiltBuildingState \
+                       CheckNotInstalledInstallationState \
+                       CheckObjectPropertiesInBusinessTemplate \
+                       SaveBusinessTemplate \
+                       CheckBuiltBuildingState \
+                       CheckNotInstalledInstallationState \
+                       ImportBusinessTemplate \
+                       UseImportBusinessTemplate \
+                       InstallBusinessTemplate \
+                       Tic \
+                       RemoveBaseCategory \
+                       CheckPreinstallReturnSomething \
+                       '
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self, quiet=quiet)
+
   # test of actions
   def test_07_BusinessTemplateWithOneAction(self, quiet=quiet, run=run_all_test):
     if not run: return




More information about the Erp5-report mailing list