[Erp5-report] r13886 - in /erp5/trunk/products/ERP5: Document/ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Apr 3 12:01:41 CEST 2007
Author: aurel
Date: Tue Apr 3 12:01:39 2007
New Revision: 13886
URL: http://svn.erp5.org?rev=13886&view=rev
Log:
check at build of bt that portal types properties exists in site, 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=13886&r1=13885&r2=13886&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py Tue Apr 3 12:01:39 2007
@@ -1509,8 +1509,17 @@
class_property = 'allowed_content_types'
def build(self, context, **kw):
- for key in self._archive.keys():
+ types_tool = self.getPortalObject().portal_types
+ types_list = list(types_tool.objectIds())
+ for key in self._archive.keys():
portal_type, allowed_type = key.split(' | ')
+ # check properties corresponds to what is defined in site
+ if not portal_type in types_list:
+ raise ValueError, "Portal Type %s not found in site" %(portal_type,)
+ ob = types_tool._getOb(portal_type)
+ prop_value = getattr(ob, self.class_property, ())
+ if not allowed_type in prop_value:
+ raise ValueError, "Property %s not found in portal type %s" %(allowed_type, portal_type)
if self._objects.has_key(portal_type):
allowed_list = self._objects[portal_type]
allowed_list.append(allowed_type)
Modified: erp5/trunk/products/ERP5/tests/testBusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testBusinessTemplate.py?rev=13886&r1=13885&r2=13886&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testBusinessTemplate.py (original)
+++ erp5/trunk/products/ERP5/tests/testBusinessTemplate.py Tue Apr 3 12:01:39 2007
@@ -404,6 +404,17 @@
self.failUnless(bt is not None)
bt.getPortalTypesProperties()
+ def stepFillWrongPortalTypesFields(self, sequence=None, sequence_list=None, **kw):
+ """
+ Fill portal types properties field in business template with wrong values
+ """
+ bt = sequence.get('current_bt', None)
+ self.failUnless(bt is not None)
+ bt.getPortalTypesProperties()
+ bt_allowed_content_type_list = list(getattr(self, 'template_portal_type_allowed_content_type', []) or [])
+ bt_allowed_content_type_list.append("Geek Module | BusinessTemplate")
+ bt.setProperty('template_portal_type_allowed_content_type', bt_allowed_content_type_list)
+
# module
def stepCreateModuleAndObjects(self, sequence=None, sequence_list=None, **kw):
"""
@@ -1964,6 +1975,14 @@
self.assertRaises(AttributeError,
template.build)
+ def stepCheckBuildWithBadPortalTypeFailed(self, sequence=None, sequence_list=None, **kw):
+ """
+ Build Business Template
+ """
+ template = sequence.get('current_bt')
+ self.assertRaises(ValueError,
+ template.build)
+
def stepBuildBusinessTemplate(self, sequence=None, sequence_list=None, **kw):
"""
Build Business Template
@@ -2251,6 +2270,31 @@
'
sequence_list.addSequenceString(sequence_string)
sequence_list.play(self, quiet=quiet)
+
+ def test_021_BusinessTemplateWithPortalTypesAdnWrongValues(self, quiet=quiet, run=run_all_test):
+ if not run: return
+ if not quiet:
+ message = 'Test Business Template With Portal Types and Bad Values'
+ ZopeTestCase._print('\n%s ' % message)
+ LOG('Testing... ', 0, message)
+ sequence_list = SequenceList()
+ sequence_string = '\
+ CreatePortalType \
+ CreateNewBusinessTemplate \
+ UseExportBusinessTemplate \
+ AddPortalTypeToBusinessTemplate \
+ FillPortalTypesFields \
+ FillWrongPortalTypesFields \
+ CheckModifiedBuildingState \
+ CheckNotInstalledInstallationState \
+ CheckBuildWithBadPortalTypeFailed \
+ RemovePortalType \
+ RemoveBusinessTemplate \
+ RemoveAllTrashBins \
+ '
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self, quiet=quiet)
+
# test of skins
def test_03_BusinessTemplateWithSkins(self, quiet=quiet, run=run_all_test):
More information about the Erp5-report
mailing list