Commit 2a556737 authored by Xiaowu Zhang's avatar Xiaowu Zhang

Module configuration

See merge request !109
parents a70067af 3dd41e28
Pipeline #26005 failed with stage
in 0 seconds
##############################################################################
#
# Copyright (c) 2002-2022 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from Products.ERP5Type.tests.SecurityTestCase import SecurityTestCase
import random
import transaction
from Products.ERP5Type.tests.utils import DummyMailHost
from Products.ERP5Type.Utils import convertToUpperCase
from AccessControl.SecurityManagement import getSecurityManager, \
setSecurityManager
class WendelinConfiguratorMixin(SecurityTestCase):
abort_transaction = 0
def clearCache(self):
self.portal.portal_caches.clearAllCache()
self.portal.portal_workflow.refreshWorklistCache()
def createAlarmStep(self):
def makeCallAlarm(alarm):
def callAlarm(*args, **kwargs):
sm = getSecurityManager()
self.login()
try:
alarm.activeSense(params=kwargs)
self.commit()
finally:
setSecurityManager(sm)
return callAlarm
for alarm in self.portal.portal_alarms.contentValues():
if alarm.isEnabled():
setattr(self, 'stepCall' + convertToUpperCase(alarm.getId()) \
+ 'Alarm', makeCallAlarm(alarm))
def setupPortalAlarms(self):
if not self.portal.portal_alarms.isSubscribed():
self.portal.portal_alarms.subscribe()
self.assertTrue(self.portal.portal_alarms.isSubscribed())
def beforeTearDown(self):
self.deSetUpPersistentDummyMailHost()
if self.abort_transaction:
transaction.abort()
def setUpConfiguratorOnce(self):
self.commit()
self.portal.portal_templates.updateRepositoryBusinessTemplateList(
repository_list=self.portal.portal_templates.getRepositoryList())
self.commit()
self.launchConfigurator()
def afterSetUp(self):
self.login()
self.createAlarmStep()
# Execute the business configuration if not installed
business_configuration = self.getBusinessConfiguration()
if (business_configuration.getSimulationState() != 'installed'):
self.portal.portal_caches.erp5_site_global_id = '%s' % random.random()
self.portal.portal_caches._p_changed = 1
self.commit()
self.portal.portal_caches.updateCache()
self.bootstrapSite()
self.commit()
def deSetUpPersistentDummyMailHost(self):
if 'MailHost' in self.portal.objectIds():
self.portal.manage_delObjects(['MailHost'])
self.portal.manage_addProduct['MailHost'].manage_addMailHost('MailHost')
self.commit()
def setUpPersistentDummyMailHost(self):
if 'MailHost' in self.portal.objectIds():
self.portal.manage_delObjects(['MailHost'])
self.portal._setObject('MailHost', DummyMailHost('MailHost'))
self.portal.email_from_address = 'xiaowu.zhang@nexedi.com'
self.portal.email_to_address = 'xiaowu.zhang@nexedi.com'
def getBusinessConfiguration(self):
return self.portal.business_configuration_module["wendelin_configuration"]
def launchConfigurator(self):
self.logMessage('Wendelin launchConfigurator')
self.login()
# Create new Configuration
business_configuration = self.getBusinessConfiguration()
response_dict = {}
configurator_options = self.getConfiguratorOptions()
while response_dict.get("command", "next") != "install":
response_dict = self.portal.portal_configurator._next(
business_configuration, configurator_options)
self.tic()
self.portal.portal_configurator.startInstallation(
business_configuration,REQUEST=self.portal.REQUEST)
def bootstrapSite(self):
self.logMessage('Wendelin bootstrapSite')
self.setupPortalAlarms()
self.clearCache()
self.tic()
self.setUpConfiguratorOnce()
self.tic()
def getBusinessTemplateList(self):
"""
Install the business templates.
"""
return [
'erp5_wendelin_configurator'
]
def getCommonBusinessTemplateList(self):
return [
'erp5_code_mirror',
'erp5_mysql_innodb_catalog',
'erp5_odt_style',
'erp5_pdm',
'erp5_svg_editor',
'erp5_jquery_plugin_mbmenu',
'erp5_dhtml_style',
'erp5_notebook',
'erp5_base',
'erp5_xhtml_style',
'erp5_ods_style',
'erp5_wendelin_examples',
'erp5_knowledge_pad',
'erp5_jquery_ui',
'erp5_property_sheets',
'erp5_web_renderjs_ui',
'erp5_dms',
'erp5_jquery',
'erp5_ingestion_mysql_innodb_catalog',
'erp5_ingestion',
'erp5_forge',
'erp5_jquery_plugin_elastic',
'erp5_core_proxy_field_legacy',
'erp5_rss_style',
'erp5_jquery_sheet_editor',
'erp5_big_file',
'erp5_jquery_plugin_colorpicker',
'erp5_web',
'erp5_project',
'erp5_jquery_plugin_sheet',
'erp5_json_type',
'erp5_core',
'erp5_font',
'erp5_configurator',
'erp5_hal_json_style',
'erp5_web_service',
'erp5_development_wizard',
'erp5_trade',
'erp5_wendelin_category',
'erp5_wendelin_configurator',
'erp5_accounting',
'erp5_wendelin_development',
'erp5_full_text_mroonga_catalog',
'erp5_oauth2_resource',
'erp5_wendelin',
'erp5_jquery_plugin_jqchart',
'erp5_stock_cache',
'erp5_simulation',
'erp5_crm',
# erp5_data_notebook is added because of
# https://lab.nexedi.com/nexedi/wendelin/commit/f6f6cc240d18c609f2d6c6c7990642d11af10cac
# once it's fixed, it should be removed
'erp5_data_notebook'
]
def checkModuleBusinessApplication(self):
big_data_module_list = [
'data_acquisition_unit_module',
'data_aggregation_unit_module',
'data_analysis_module',
'data_array_module',
'data_configuration_module',
'data_descriptor_module',
'data_event_module',
'data_ingestion_batch_module',
'data_ingestion_module',
'data_license_module',
'data_mapping_module',
'data_notebook_module',
'data_operation_module',
'data_order_module',
'data_product_module',
'data_release_module',
'data_set_module',
'data_stream_module',
'data_supply_module',
'data_transformation_module',
'device_configuration_module',
'notebook_module',
'progress_indicator_module'
]
for module in big_data_module_list:
self.assertEqual(getattr(self.portal, module).getCategoriesList(), ['business_application/big_data'])
def checkSiteTitle(self):
self.assertEqual(self.portal.getTitle(), 'Wendelin')
def checkPreference(self):
default_site_preference = getattr(self.portal.portal_preferences,
'default_site_preference', None)
self.assertEqual(default_site_preference.getPreferenceState(), 'global')
self.assertTrue(self.portal.portal_preferences.getPreferredHtmlStyleAccessTab())
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>WendelinConfiguratorMixin</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.WendelinConfiguratorMixin</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
##############################################################################
#
# Copyright (c) 2002-2022 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from erp5.component.test.WendelinConfiguratorMixin import WendelinConfiguratorMixin
class testWendelinConfigurator(WendelinConfiguratorMixin):
def getConfiguratorOptions(self):
return {}
def testConfiguredBusinessTemplateList(self):
""" Make sure Installed business Templates are
what it is expected. """
expected_business_template_list = self.getCommonBusinessTemplateList()
self.assertSameSet(expected_business_template_list,
self.portal.portal_templates.getInstalledBusinessTemplateTitleList())
def testModuleBusinessApplication(self):
super(testWendelinConfigurator, self).checkModuleBusinessApplication()
def testSiteTitle(self):
super(testWendelinConfigurator, self).checkSiteTitle()
def testPreference(self):
super(testWendelinConfigurator, self).checkPreference()
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testWendelinConfigurator</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testWendelinConfigurator</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
##############################################################################
#
# Copyright (c) 2002-2022 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from erp5.component.test.WendelinConfiguratorMixin import WendelinConfiguratorMixin
class testWendelinConfiguratorSetupDataLakeAndSecurityModel(WendelinConfiguratorMixin):
def getConfiguratorOptions(self):
return {
"field_your_setup_data_lake": True,
"field_your_setup_data_lake_default_security_model": True
}
def testConfiguredBusinessTemplateList(self):
""" Make sure Installed business Templates are
what it is expected. """
expected_business_template_list = self.getCommonBusinessTemplateList()
expected_business_template_list += [
'erp5_ui_test_core',
'erp5_l10n_fa',
'erp5_wendelin_data_lake_ui',
'erp5_wendelin_data_lake_ingestion_default_security_model',
'erp5_ui_test',
'erp5_wendelin_data_lake_ingestion',
'erp5_credential'
]
self.assertSameSet(expected_business_template_list,
self.portal.portal_templates.getInstalledBusinessTemplateTitleList())
def testSystemPreference(self):
default_system_preference = getattr(self.portal.portal_preferences, 'default_system_preference', None)
self.assertEqual(default_system_preference.getPreferenceState(), 'global')
self.assertTrue(default_system_preference.getPreferredCredentialRequestAutomaticApproval())
def testAlarm(self):
accept_submitted_credentials = getattr(self.portal.portal_alarms,
'accept_submitted_credentials', None)
self.assertTrue(accept_submitted_credentials.getEnabled())
self.assertEqual(accept_submitted_credentials.getPeriodicityMinuteFrequency(), 1)
def testModuleBusinessApplication(self):
super(testWendelinConfiguratorSetupDataLakeAndSecurityModel, self).checkModuleBusinessApplication()
def testSiteTitle(self):
super(testWendelinConfiguratorSetupDataLakeAndSecurityModel, self).checkSiteTitle()
def testPreference(self):
super(testWendelinConfiguratorSetupDataLakeAndSecurityModel, self).checkPreference()
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testWendelinConfiguratorSetupDataLakeAndSecurityModel</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testWendelinConfiguratorSetupDataLakeAndSecurityModel</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
##############################################################################
#
# Copyright (c) 2002-2022 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from erp5.component.test.WendelinConfiguratorMixin import WendelinConfiguratorMixin
class testWendelinConfiguratorSetupDataNotebook(WendelinConfiguratorMixin):
def getConfiguratorOptions(self):
return {
"field_your_setup_data_notebook": True
}
def testConfiguredBusinessTemplateList(self):
""" Make sure Installed business Templates are
what it is expected. """
expected_business_template_list = self.getCommonBusinessTemplateList()
expected_business_template_list += ['erp5_data_notebook']
self.assertSameSet(expected_business_template_list,
self.portal.portal_templates.getInstalledBusinessTemplateTitleList())
def testModuleBusinessApplication(self):
super(testWendelinConfiguratorSetupDataNotebook, self).checkModuleBusinessApplication()
def testSiteTitle(self):
super(testWendelinConfiguratorSetupDataNotebook, self).checkSiteTitle()
def testPreference(self):
super(testWendelinConfiguratorSetupDataNotebook, self).checkPreference()
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testWendelinConfiguratorSetupDataNotebook</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testWendelinConfiguratorSetupDataNotebook</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
##############################################################################
#
# Copyright (c) 2002-2022 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from erp5.component.test.WendelinConfiguratorMixin import WendelinConfiguratorMixin
class testWendelinConfiguratorSetupDataSample(WendelinConfiguratorMixin):
def getConfiguratorOptions(self):
return {
"field_your_setup_data_sample": True
}
def testConfiguredBusinessTemplateList(self):
""" Make sure Installed business Templates are
what it is expected. """
expected_business_template_list = self.getCommonBusinessTemplateList()
expected_business_template_list += ['erp5_wendelin_data_sample']
self.assertSameSet(expected_business_template_list,
self.portal.portal_templates.getInstalledBusinessTemplateTitleList())
def testModuleBusinessApplication(self):
super(testWendelinConfiguratorSetupDataSample, self).checkModuleBusinessApplication()
def testSiteTitle(self):
super(testWendelinConfiguratorSetupDataSample, self).checkSiteTitle()
def testPreference(self):
super(testWendelinConfiguratorSetupDataSample, self).checkPreference()
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Component" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testWendelinConfiguratorSetupDataSample</string> </value>
</item>
<item>
<key> <string>default_source_reference</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testWendelinConfiguratorSetupDataSample</string> </value>
</item>
<item>
<key> <string>sid</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
test.erp5.WendelinConfiguratorMixin
test.erp5.testWendelinConfigurator
test.erp5.testWendelinConfiguratorSetupDataLakeAndSecurityModel
test.erp5.testWendelinConfiguratorSetupDataNotebook
test.erp5.testWendelinConfiguratorSetupDataSample
\ No newline at end of file
erp5_full_text_mroonga_catalog
\ No newline at end of file
<module>
<category_list>
<category>business_application/big_data</category>
</category_list>
<id>data_set_module</id>
<permission_list>
<permission type='tuple'>
......
<module>
<category_list>
<category>business_application/big_data</category>
</category_list>
<id>data_stream_module</id>
<permission_list>
<permission type='tuple'>
......
<module>
<category_list>
<category>business_application/big_data</category>
</category_list>
<id>notebook_module</id>
<permission_list>
<permission type='tuple'>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment