[Erp5-report] r42139 lucas - in /erp5/trunk/bt5/erp5_configurator_standard: TestTemplateIte...

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Jan 7 23:33:00 CET 2011


Author: lucas
Date: Fri Jan  7 23:33:00 2011
New Revision: 42139

URL: http://svn.erp5.org?rev=42139&view=rev
Log:
Added basic test for consulting.

Modified:
    erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testLiveStandardConfigurationWorkflow.py
    erp5/trunk/bt5/erp5_configurator_standard/bt/revision

Modified: erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testLiveStandardConfigurationWorkflow.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testLiveStandardConfigurationWorkflow.py?rev=42139&r1=42138&r2=42139&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testLiveStandardConfigurationWorkflow.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_configurator_standard/TestTemplateItem/testLiveStandardConfigurationWorkflow.py [utf8] Fri Jan  7 23:33:00 2011
@@ -47,9 +47,6 @@ class TestLiveConfiguratorWorkflowMixin(
   standard_bt5_list = ('erp5_configurator_standard_categories',)
 
   def afterSetUp(self):
-    newId = self.portal.portal_ids.generateNewId
-    id_group ='testConfiguratorStandardWorkflow'
-
     self.login(user_name='test_configurator_user')
     # XXX (lucas): The request is not clean between tests.
     # So, we need to force the test to use a clean REQUEST
@@ -60,26 +57,6 @@ class TestLiveConfiguratorWorkflowMixin(
     else:
       self.stepCleanUpRequest()
 
-    self.sales_manager_reference = 'sales_manager_%s' % newId(id_group)
-    self.purchase_manager_reference = 'purchase_manager_%s' % newId(id_group)
-    self.accounting_agent_reference = 'accounting_agent_%s' % newId(id_group)
-    self.accounting_manager_reference = 'accounting_manager_%s' % newId(id_group)
-    self.warehouse_agent_reference = 'warehouse_agent_%s' % newId(id_group)
-    self.simple_user_reference = 'simple_user_%s' % newId(id_group)
-
-    self.accountant_username_list = (self.accounting_agent_reference,
-                                     self.accounting_manager_reference,)
-    self.all_username_list = (self.sales_manager_reference,
-                              self.purchase_manager_reference,
-                              self.accounting_agent_reference,
-                              self.accounting_manager_reference,
-                              self.warehouse_agent_reference,
-                              self.simple_user_reference,)
-    self.sales_and_purchase_username_list = (self.sales_manager_reference,
-                                             self.purchase_manager_reference,)
-    self.warehouse_username_list = (self.warehouse_agent_reference,)
-    self.simple_username_list = (self.simple_user_reference,)
-
     self.restricted_security = 0
 
     # information to know if a business template is a standard business
@@ -143,164 +120,12 @@ class TestLiveConfiguratorWorkflowMixin(
     self.assertEquals(custom_bt5_config_item.bt5_title,
           '_'.join(business_configuration.getTitle().strip().lower().split()))
 
-
-class TestLiveConsultingConfiguratorWorkflow(TestLiveConfiguratorWorkflowMixin):
-  """
-    Test Live Consulting Configuration Workflow
-  """
-
-  DEFAULT_SEQUENCE_LIST = """
-      stepCreateBusinessConfiguration 
-      stepTic
-      stepSetConsultingWorkflow
-      stepTic
-      stepConfiguratorNext
-      stepTic
-      stepCheckBT5ConfiguratorItem
-
-      stepCheckConfigureCategoriesForm
-      stepSetupCategoriesConfiguratorItem
-      stepConfiguratorNext
-      stepTic
-      stepCheckXXXForm
-      """
-
-  def afterSetUp(self):
-    TestLiveConfiguratorWorkflowMixin.afterSetUp(self)
-    categories_file_id = 'consulting_configurator_sample_categories.ods'
-    categories_file_obj = getattr(self.portal, categories_file_id)
-
-    self.categories_file_path = '/tmp/%s' % categories_file_id
-    temp_file = open(self.categories_file_path, 'w+b')
-    try:
-      temp_file.write(str(categories_file_obj))
-    finally:
-      temp_file.close()
-
-    self.categories_file_upload = FileUpload(self.categories_file_path,
-                                             categories_file_id)
-
-  def beforeTearDown(self):
-    os.remove(self.categories_file_path)
-
-  def stepCreateBusinessConfiguration(self,  sequence=None, sequence_list=None, **kw):
-    """ Create one Business Configuration """
-    module = self.portal.business_configuration_module
-    business_configuration = module.newContent(
-                               portal_type="Business Configuration",
-                               title='Test Configurator Consulting Workflow')
-    next_dict = {}
-    sequence.edit(business_configuration=business_configuration, 
-                  next_dict=next_dict)
-
-  def stepSetConsultingWorkflow(self, sequence=None, sequence_list=None, **kw):
-    """ Set Standard Workflow into Business Configuration """
-    business_configuration = sequence.get("business_configuration")
-    self.setBusinessConfigurationWorkflow(business_configuration,
-                                   "workflow_module/erp5_consulting_workflow")
-
-  def stepCheckConfigureCategoriesForm(self, sequence=None, sequence_list=None, **kw):
-    """ Check if Confire Organisation step was showed """
-    response_dict = sequence.get("response_dict")
-    if 'command' in response_dict:
-      self.assertEquals('show', response_dict['command'])
-    self.assertEquals(None, response_dict['previous'])
-    self.assertEquals('Configure Categories', response_dict['next'])
-    self.assertCurrentStep('Your categories', response_dict)
-
-  def stepSetupCategoriesConfiguratorItem(self, sequence=None, sequence_list=None, **kw):
-    """ Load the categories """
-    next_dict = dict(field_your_categories_spreadsheet=self.categories_file_upload)
-    next_dict.update(**kw)
-    sequence.edit(next_dict=next_dict)
-
-  # XXX: To be written
-  def stepCheckXXXForm(self, sequence=None, sequence_list=None, **kw):
-    response_dict = sequence.get("response_dict")
-    if 'command' in response_dict:
-      self.assertEquals('show', response_dict['command'])
-    self.assertEquals('Configure user accounts number', response_dict['next'])
-    self.assertEquals('Previous', response_dict['previous'])
-    self.assertCurrentStep('Number of user accounts', response_dict)
-
-
-  def test_consulting_workflow(self):
-    """ Test the consulting workflow configuration"""
-    sequence_list = SequenceList()
-    sequence_string = self.DEFAULT_SEQUENCE_LIST
-    sequence_list.addSequenceString(sequence_string)
-    sequence_list.play(self)
-
-
-class TestLiveStandardConfiguratorWorkflow(TestLiveConfiguratorWorkflowMixin):
-  """
-    Test Live Standard Configuration Workflow.
-  """
-  DEFAULT_SEQUENCE_LIST = """
-      stepCreateBusinessConfiguration 
-      stepTic
-      stepSetStandardWorkflow
-      stepTic
-      stepConfiguratorNext
-      stepTic
-      stepCheckBT5ConfiguratorItem
-      stepCheckConfigureOrganisationForm
-      stepSetupOrganisationConfiguratorItem%(country)s
-      stepConfiguratorNext
-      stepTic
-      stepCheckConfigureUserAccountNumberForm
-      stepCheckOrganisationConfiguratorItem%(country)s
-      stepSetupUserAccounNumberSix
-      stepConfiguratorNext
-      stepTic
-      stepCheckConfigureMultipleUserAccountForm
-      stepSetupMultipleUserAccountSix
-      stepConfiguratorNext
-      stepTic
-      stepCheckMultiplePersonConfigurationItem
-      stepCheckConfigureAccountingForm
-      stepSetupAccountingConfiguration%(country)s
-      stepConfiguratorNext
-      stepTic
-      stepCheckAccountingConfigurationItemList%(country)s
-      stepCheckConfigurePreferenceForm
-      stepSetupPreferenceConfiguration%(country)s
-      stepConfiguratorNext
-      stepTic
-      stepCheckPreferenceConfigurationItemList%(country)s
-      stepCheckConfigureInstallationForm
-      stepSetupInstallConfiguration
-      stepConfiguratorNext
-      stepCheckInstallConfiguration
-      stepTic
-      stepStartConfigurationInstallation
-      stepTic
-      stepCheckInstanceIsConfigured%(country)s
-  """
-
-  def stepCreateBusinessConfiguration(self,  sequence=None, sequence_list=None, **kw):
-    """ Create one Business Configuration """
-    module = self.portal.business_configuration_module
-    business_configuration = module.newContent(
-                               portal_type="Business Configuration",
-                               title='Test Configurator Standard Workflow')
-    next_dict = {}
-    sequence.edit(business_configuration=business_configuration, 
-                  next_dict=next_dict)
-
-  def stepSetStandardWorkflow(self, sequence=None, sequence_list=None, **kw):
-    """ Set Standard Workflow into Business Configuration """
-    business_configuration = sequence.get("business_configuration")
-    self.setBusinessConfigurationWorkflow(business_configuration,
-                                    "workflow_module/erp5_standard_workflow")
-
   def stepCheckConfigureOrganisationForm(self, sequence=None, sequence_list=None, **kw):
     """ Check if Confire Organisation step was showed """
     response_dict = sequence.get("response_dict")
     if 'command' in response_dict:
       self.assertEquals('show', response_dict['command'])
-    self.assertEquals(None, response_dict['previous'])
-    self.assertEquals('Configure organisation', response_dict['next'])
+    self.assertEquals('Configure Organisation', response_dict['next'])
     self.assertCurrentStep('Your organisation', response_dict)
 
   def _stepSetupOrganisationConfiguratorItem(self, sequence=None, sequence_list=None, **kw):
@@ -314,81 +139,19 @@ class TestLiveStandardConfiguratorWorkfl
     next_dict.update(**kw)
     sequence.edit(next_dict=next_dict)
 
-  def stepSetupOrganisationConfiguratorItemFrance(self, sequence=None, sequence_list=None, **kw):
-    """ Create one Organisation with French information """
-    self._stepSetupOrganisationConfiguratorItem(
-        sequence=sequence,
-        sequence_list=sequence_list,
-        field_your_default_address_city='LILLE',
-        field_your_default_address_region='europe/western_europe/france')
-
-  def stepSetupOrganisationConfiguratorItemBrazil(self, sequence=None, sequence_list=None, **kw):
-    """ Create one Organisation with Brazilian information"""
-    self._stepSetupOrganisationConfiguratorItem(
-        sequence=sequence,
-        sequence_list=sequence_list,
-        field_your_default_address_city='CAMPOS',
-        field_your_default_address_region='americas/south_america/brazil')
-
   def stepCheckConfigureUserAccountNumberForm(self, sequence=None, sequence_list=None, **kw):
     """ Check if Configure Organisation step was showed """
     response_dict = sequence.get("response_dict")
     if 'command' in response_dict:
       self.assertEquals('show', response_dict['command'])
-
     self.assertEquals('Configure user accounts number', response_dict['next'])
     self.assertEquals('Previous', response_dict['previous'])
     self.assertCurrentStep('Number of user accounts', response_dict)
 
-  def _stepCheckOrganisationConfiguratorItem(self, business_configuration,
-                                                   default_address_city,
-                                                   default_address_region):
-    """ Check if configuration key was created fine """
-    # last one: a step for what the client selected
-    organisation_config_save = business_configuration['3']
-    self.assertEquals(2, len(organisation_config_save.contentValues()))
-    # first item: configuration of our organisation
-    organisation_config_item = organisation_config_save['1']
-    self.assertEquals(organisation_config_item.getPortalType(),
-                      'Organisation Configurator Item')
-    # this organisation configurator items contains all properties that the
-    # orgnanisation will have.
-    self.assertEquals(organisation_config_item.getDefaultAddressCity(),
-                      default_address_city)
-    self.assertEquals(organisation_config_item.getDefaultAddressRegion(),
-                      default_address_region)
-    self.assertEquals(organisation_config_item.getDefaultEmailText(),
-                      'me at example.com')
-    self.assertEquals('01234567890',
-        organisation_config_item.getDefaultTelephoneTelephoneNumber())
-
-    # we also create a category for our group
-    category_config_item = organisation_config_save['2']
-    self.assertEquals(category_config_item.getPortalType(),
-                      'Category Configurator Item')
-    self.assertEquals(category_config_item.getTitle(),
-                      'My Organisation')
-
-    self.assertEquals(3, len(business_configuration.contentValues(portal_type="Configuration Save")))
-    self.assertEquals(0, len(business_configuration.contentValues(portal_type="Link")))
-
-  def stepCheckOrganisationConfiguratorItemFrance(self, sequence=None, sequence_list=None, **kw):
-    """ Check if configuration key was created fine """
-    self._stepCheckOrganisationConfiguratorItem(
-                business_configuration=sequence.get('business_configuration'),
-                default_address_city='LILLE',
-                default_address_region='europe/western_europe/france')
-
-  def stepCheckOrganisationConfiguratorItemBrazil(self, sequence=None, sequence_list=None, **kw):
-    """ Check if configuration key was created fine """
-    self._stepCheckOrganisationConfiguratorItem(
-                business_configuration=sequence.get('business_configuration'),
-                default_address_city='CAMPOS',
-                default_address_region='americas/south_america/brazil')
-
   def stepSetupUserAccounNumberSix(self, sequence=None, sequence_list=None, **kw):
     """ Create one more user account """
-    next_dict = dict(field_your_company_employees_number='6', )
+    next_dict = dict(
+          field_your_company_employees_number=self.company_employees_number)
     sequence.edit(next_dict=next_dict)
 
   def stepCheckConfigureMultipleUserAccountForm(self, sequence=None, sequence_list=None, **kw):
@@ -402,72 +165,8 @@ class TestLiveStandardConfiguratorWorkfl
 
   def stepSetupMultipleUserAccountSix(self, sequence=None, sequence_list=None, **kw):
     """ Create multiple user account """
-    # create our 6 users:
-    user_list = [
-      dict(
-                # A sales manager
-        field_your_first_name='Sales',
-        field_your_last_name='Manager',
-        field_your_reference=self.sales_manager_reference,
-        field_your_password='sales_manager',
-        field_your_password_confirm='sales_manager',
-        field_your_function='sales/manager',
-        field_your_default_email_text='sales_manager at example.com',
-        field_your_default_telephone_text='',
-      ), dict(
-                # A purchase manager
-        field_your_first_name='Purchase',
-        field_your_last_name='Manager',
-        field_your_reference=self.purchase_manager_reference,
-        field_your_password='purchase_manager',
-        field_your_password_confirm='purchase_manager',
-        field_your_function='purchase/manager',
-        field_your_default_email_text='purchase_manager at example.com',
-        field_your_default_telephone_text='',
-      ), dict(
-                # An Accounting agent
-        field_your_first_name='Accounting',
-        field_your_last_name='Agent',
-        field_your_reference=self.accounting_agent_reference,
-        field_your_password='accounting_agent',
-        field_your_password_confirm='accounting_agent',
-        field_your_function='af/accounting/agent',
-        field_your_default_email_text='accounting_agent at example.com',
-        field_your_default_telephone_text='',
-      ), dict(
-                # An Accounting Manager
-        field_your_first_name='Accounting',
-        field_your_last_name='Manager',
-        field_your_reference=self.accounting_manager_reference,
-        field_your_password='accounting_manager',
-        field_your_password_confirm='accounting_manager',
-        field_your_function='af/accounting/manager',
-        field_your_default_email_text='accounting_manager at example.com',
-        field_your_default_telephone_text='',
-      ), dict(
-                # A Warehouse Agent
-        field_your_first_name='Warehouse',
-        field_your_last_name='Agent',
-        field_your_reference=self.warehouse_agent_reference,
-        field_your_password='warehouse_agent',
-        field_your_password_confirm='warehouse_agent',
-        field_your_function='warehouse/agent',
-        field_your_default_email_text='warehouse_agent at example.com',
-        field_your_default_telephone_text='',
-      ), dict(
-          # A Simple user without meaningfull function ( hr / manager)
-        field_your_first_name='Simple',
-        field_your_last_name='User',
-        field_your_reference=self.simple_user_reference,
-        field_your_password='simple_user',
-        field_your_password_confirm='simple_user',
-        field_your_function='hr/manager',
-        field_your_default_email_text='simple_user at example.com',
-        field_your_default_telephone_text='',
-      ),
-    ]
     next_dict = {}
-    for user in user_list:
+    for user in self.user_list:
       for k, v in user.items():
         next_dict.setdefault(k, []).append(v)
     sequence.edit(next_dict=next_dict)
@@ -478,45 +177,24 @@ class TestLiveStandardConfiguratorWorkfl
       Configuration have been created successfully.
     """
     business_configuration = sequence.get("business_configuration")
+    self.assertEquals(int(self.company_employees_number),
+                          business_configuration.getGlobalConfigurationAttr(
+                                                 "company_employees_number"))
+
+    configuration_save_list = business_configuration.contentValues(
+                                             portal_type='Configuration Save')
+    person_business_configuration_save = None
+    for configuration_save in configuration_save_list:
+      person_item_list = configuration_save.contentValues(
+                                 portal_type='Person Configurator Item')
+      if person_item_list:
+        person_business_configuration_save = configuration_save
+        break
 
-    person_number_business_configuration_save = business_configuration['4']
-    self.assertEquals(6, business_configuration.getGlobalConfigurationAttr(
-                             "company_employees_number"))
-    self.assertEquals(0,
-        len(person_number_business_configuration_save.contentValues()))
-    person_business_configuration_save = business_configuration['5']
-    self.assertEquals(6, # we have 6 users
-        len(person_business_configuration_save.contentValues()))
-    person_business_configuration_item =\
-          person_business_configuration_save['1']
-    self.assertEquals('Person Configurator Item',
-            person_business_configuration_item.getPortalType())
-    self.assertEquals('Sales',
-            person_business_configuration_item.getFirstName())
-    self.assertEquals('Manager',
-            person_business_configuration_item.getLastName())
-    self.assertEquals(self.sales_manager_reference,
-            person_business_configuration_item.getReference())
-    self.assertEquals('sales_manager',
-            person_business_configuration_item.getPassword())
-    self.assertEquals('sales/manager',
-            person_business_configuration_item.getFunction())
 
-    # ...
-    person_business_configuration_item =\
-          person_business_configuration_save['3']
-    self.assertEquals('Person Configurator Item',
-            person_business_configuration_item.getPortalType())
-    self.assertEquals('Accounting',
-            person_business_configuration_item.getFirstName())
-    self.assertEquals('Agent',
-            person_business_configuration_item.getLastName())
-    self.assertEquals(self.accounting_agent_reference,
-            person_business_configuration_item.getReference())
-    self.assertEquals('accounting_agent',
-            person_business_configuration_item.getPassword())
-    self.assertEquals('af/accounting/agent',
-            person_business_configuration_item.getFunction())
+    self.assertEquals(int(self.company_employees_number),
+        len(person_business_configuration_save.contentValues()))
+    return person_business_configuration_save
 
   def stepCheckConfigureAccountingForm(self, sequence=None, sequence_list=None, **kw):
     """ Check the accounting form configuration. """
@@ -539,7 +217,6 @@ class TestLiveStandardConfiguratorWorkfl
                 field_your_period_title='2008',
            )
 
-
   def stepSetupAccountingConfigurationFrance(self, sequence=None, sequence_list=None, **kw):
     """ Setup up the French accounting configuration """
     next_dict = self._stepSetupAccountingConfiguration(accounting_plan='fr')
@@ -556,41 +233,17 @@ class TestLiveStandardConfiguratorWorkfl
     if 'command' in response_dict:
       self.assertEquals('show', response_dict['command'])
     self.assertEquals('Previous', response_dict['previous'])
-    self.assertEquals('Configure preferences', response_dict['next'])
+    self.assertEquals('Configure ERP5 Preferences', response_dict['next'])
     self.assertCurrentStep('Application preferences', response_dict)
 
-  def _stepSetupPreferenceConfiguration(self, price_currency, lang):
-    """ Setup the preference configuration """
-    return dict(field_your_price_currency=price_currency,
-                field_your_preferred_date_order='dmy',
-                field_your_lang=lang,
-                default_field_your_lang=1
-           )
-
-
-  def stepSetupPreferenceConfigurationFrance(self, sequence=None, sequence_list=None, **kw):
-    """ Setup the French preference configuration """
-    next_dict = self._stepSetupPreferenceConfiguration(
-                                               price_currency='EUR;0.01;Euro',
-                                               lang='erp5_l10n_fr',
-                )
-    sequence.edit(next_dict=next_dict)
-
-  def stepSetupPreferenceConfigurationBrazil(self, sequence=None, sequence_list=None, **kw):
-    """ Setup the Brazil preference configuration """
-    next_dict = self._stepSetupPreferenceConfiguration(
-                                      price_currency='BRL;0.01;Brazilian Real',
-                                      lang='erp5_l10n_pt-BR',
-                )
-    sequence.edit(next_dict=next_dict)
-
   def _stepCheckAccountingConfigurationItemList(self, business_configuration,
                                                       bt5_id,
                                                       accounting_transaction_gap,
                                                       gap):
     """ Check the French accounting configuration item list """
     # 1. the localization business template
-    accounting_business_configuration_save = business_configuration['6']
+    accounting_business_configuration_save = business_configuration.\
+                      contentValues(portal_types='Configuration Save')[-1]
     bt5_business_configuration_item =\
           accounting_business_configuration_save['1']
     self.assertEquals('Standard BT5 Configurator Item',
@@ -607,7 +260,7 @@ class TestLiveStandardConfiguratorWorkfl
     self.assertEquals(accounting_transaction_gap,
            preference_buisiness_configurator_item.getProperty(
               'preferred_accounting_transaction_gap'))
-    self.assertEquals('group/my_group',
+    self.assertEquals(self.preference_group,
            preference_buisiness_configurator_item.getProperty(
               'preferred_accounting_transaction_section_category'))
     
@@ -658,6 +311,27 @@ class TestLiveStandardConfiguratorWorkfl
                 accounting_transaction_gap='gap/br/pcg',
                 gap='br/pcg/2/2.4/2.4.1/2.4.1.01')
 
+  def _stepSetupPreferenceConfiguration(self, price_currency, lang):
+    """ Setup the preference configuration """
+    return dict(field_your_price_currency=price_currency,
+                field_your_preferred_date_order='dmy',
+                field_your_lang=lang,
+                default_field_your_lang=1,)
+
+  def stepSetupPreferenceConfigurationFrance(self, sequence=None, sequence_list=None, **kw):
+    """ Setup the French preference configuration """
+    next_dict = self._stepSetupPreferenceConfiguration(
+                                               price_currency='EUR;0.01;Euro',
+                                               lang='erp5_l10n_fr',)
+    sequence.edit(next_dict=next_dict)
+
+  def stepSetupPreferenceConfigurationBrazil(self, sequence=None, sequence_list=None, **kw):
+    """ Setup the Brazil preference configuration """
+    next_dict = self._stepSetupPreferenceConfiguration(
+                                      price_currency='BRL;0.01;Brazilian Real',
+                                      lang='erp5_l10n_pt-BR',)
+    sequence.edit(next_dict=next_dict)
+
   def _stepCheckPreferenceConfigurationItemList(self, business_configuration,
                                                       currency_title,
                                                       currency_reference,
@@ -670,7 +344,9 @@ class TestLiveStandardConfiguratorWorkfl
       - Standard BT5 Configurator Item
     """
     # this created a currency
-    preferences_business_configuration_save = business_configuration['7']
+    preferences_business_configuration_save = business_configuration.\
+                      contentValues(portal_types='Configuration Save')[-1]
+ 
     currency_business_configuration_item =\
           preferences_business_configuration_save['1']
     self.assertEquals('Currency Configurator Item',
@@ -802,6 +478,565 @@ class TestLiveStandardConfiguratorWorkfl
     self.portal.portal_configurator.startInstallation(
          business_configuration, REQUEST=self.portal.REQUEST)
 
+
+class TestLiveConsultingConfiguratorWorkflow(TestLiveConfiguratorWorkflowMixin):
+  """
+    Test Live Consulting Configuration Workflow
+  """
+
+  DEFAULT_SEQUENCE_LIST = """
+      stepCreateBusinessConfiguration 
+      stepTic
+      stepSetConsultingWorkflow
+      stepTic
+      stepConfiguratorNext
+      stepTic
+      stepCheckBT5ConfiguratorItem
+      stepCheckConfigureCategoriesForm
+      stepSetupCategoriesConfiguratorItem
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureRolesForm
+      stepCheckCategoriesConfiguratorItem
+      stepSetupRolesConfiguratorItem
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureOrganisationForm
+      stepSetupOrganisationConfiguratorItem
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureUserAccountNumberForm
+      stepCheckOrganisationConfiguratorItem
+      stepSetupUserAccounNumberSix
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureMultipleUserAccountForm
+      stepSetupMultipleUserAccountSix
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureAccountingForm
+      stepCheckMultiplePersonConfigurationItem
+      stepSetupAccountingConfiguration%(country)s
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigurePreferenceForm
+      stepCheckAccountingConfigurationItemList%(country)s
+      stepSetupPreferenceConfiguration%(country)s
+      stepConfiguratorNext
+      stepTic
+      stepCheckPreferenceConfigurationItemList%(country)s
+      stepCheckConfigureInstallationForm
+      stepSetupInstallConfiguration
+      stepConfiguratorNext
+      stepTic
+      stepCheckInstallConfiguration
+      stepStartConfigurationInstallation
+      stepTic
+      stepCheckInstanceIsConfigured%(country)s
+      """
+
+  def uploadFile(self, file_id):
+    file_obj = getattr(self.portal, file_id)
+    file_path = '/tmp/%s' % file_id
+    temp_file = open(file_path, 'w+b')
+    try:
+      temp_file.write(str(file_obj))
+    finally:
+      temp_file.close()
+
+    return (file_path, FileUpload(file_path, file_id))
+
+  def afterSetUp(self):
+    TestLiveConfiguratorWorkflowMixin.afterSetUp(self)
+    categories_file_id = 'consulting_configurator_sample_categories.ods'
+    self.categories_file_path, self.categories_file_upload = \
+                                           self.uploadFile(categories_file_id)
+
+    roles_file_id = 'consulting_configurator_sample_roles_configuration_sheet.ods'
+    self.roles_file_path, self.roles_file_upload = \
+                                           self.uploadFile(roles_file_id)
+    # set the company employees number
+    self.company_employees_number = '3'
+
+    newId = self.portal.portal_ids.generateNewId
+    id_group ='testConfiguratorConsultingWorkflow'
+    self.person_creator_reference = 'person_creator_%s' % newId(id_group)
+    self.person_assignee_reference = 'person_assignee_%s' % newId(id_group)
+    self.person_assignor_reference = 'person_assignor_%s' % newId(id_group)
+
+    # set the user list
+    self.user_list = [
+      dict(
+        field_your_first_name='Person',
+        field_your_last_name='Creator',
+        field_your_reference=self.person_creator_reference,
+        field_your_password='person_creator',
+        field_your_password_confirm='person_creator',
+        field_your_function='person/creator',
+        field_your_default_email_text='',
+        field_your_default_telephone_text='',
+      ), dict(
+        field_your_first_name='Person',
+        field_your_last_name='Assignee',
+        field_your_reference=self.person_assignee_reference,
+        field_your_password='person_assignee',
+        field_your_password_confirm='person_assignee',
+        field_your_function='person/assignee',
+        field_your_default_email_text='',
+        field_your_default_telephone_text='',
+      ), dict(
+        field_your_first_name='Person',
+        field_your_last_name='Assignor',
+        field_your_reference=self.person_assignor_reference,
+        field_your_password='person_assignor',
+        field_your_password_confirm='person_assignor',
+        field_your_function='person/assignor',
+        field_your_default_email_text='',
+        field_your_default_telephone_text='',
+      ),
+    ]
+
+    # set preference group
+    self.preference_group = 'group/g' 
+
+  def beforeTearDown(self):
+    os.remove(self.categories_file_path)
+    os.remove(self.roles_file_path)
+
+  def stepCreateBusinessConfiguration(self,  sequence=None, sequence_list=None, **kw):
+    """ Create one Business Configuration """
+    module = self.portal.business_configuration_module
+    business_configuration = module.newContent(
+                               portal_type="Business Configuration",
+                               title='Test Configurator Consulting Workflow')
+    next_dict = {}
+    sequence.edit(business_configuration=business_configuration, 
+                  next_dict=next_dict)
+
+  def stepSetConsultingWorkflow(self, sequence=None, sequence_list=None, **kw):
+    """ Set Consulting Workflow into Business Configuration """
+    business_configuration = sequence.get("business_configuration")
+    self.setBusinessConfigurationWorkflow(business_configuration,
+                                   "workflow_module/erp5_consulting_workflow")
+
+  def stepCheckConfigureCategoriesForm(self, sequence=None, sequence_list=None, **kw):
+    """ Check if Confire Categories step was showed """
+    response_dict = sequence.get("response_dict")
+    if 'command' in response_dict:
+      self.assertEquals('show', response_dict['command'])
+    self.assertEquals(None, response_dict['previous'])
+    self.assertEquals('Configure Categories', response_dict['next'])
+    self.assertCurrentStep('Your categories', response_dict)
+
+  def stepSetupCategoriesConfiguratorItem(self, sequence=None, sequence_list=None, **kw):
+    """ Load the categories """
+    next_dict = dict(field_your_categories_spreadsheet=self.categories_file_upload)
+    next_dict.update(**kw)
+    sequence.edit(next_dict=next_dict)
+
+  def stepCheckConfigureRolesForm(self, sequence=None, sequence_list=None, **kw):
+    """ Check if Configure Roles step was showed """
+    response_dict = sequence.get("response_dict")
+    if 'command' in response_dict:
+      self.assertEquals('show', response_dict['command'])
+    self.assertEquals('Configure Roles', response_dict['next'])
+    self.assertEquals('Previous', response_dict['previous'])
+    self.assertCurrentStep('Your roles settings', response_dict)
+
+  def stepCheckCategoriesConfiguratorItem(self, sequence=None, sequence_list=None, **kw):
+    """ Checki if categories was created """
+    business_configuration = sequence.get("business_configuration")
+    # this created a categories spreadsheet confiurator item
+    categories_spreadsheet_configuration_save = business_configuration['3']
+    categories_spreadsheet_configuration_item =\
+          categories_spreadsheet_configuration_save['1']
+    self.assertEquals('Categories Spreadsheet Configurator Item',
+          categories_spreadsheet_configuration_item.getPortalType())
+
+    spreadsheet = categories_spreadsheet_configuration_item\
+                    .getCategoriesSpreadsheet()
+    self.assertNotEquals(None, spreadsheet)
+    self.assertEquals('Spreadsheet', spreadsheet.getPortalType())
+    self.failUnless(spreadsheet.hasData())
+
+  def stepSetupRolesConfiguratorItem(self, sequence=None, sequence_list=None, **kw):
+    """ Load the Roles """
+    next_dict = dict(field_your_portal_type_roles_spreadsheet=self.roles_file_upload)
+    next_dict.update(**kw)
+    sequence.edit(next_dict=next_dict)
+
+  def stepCheckConfigureOrganisationForm(self, sequence=None, sequence_list=None, **kw):
+    """ Check if Confire Organisation step was showed """
+    response_dict = sequence.get("response_dict")
+    TestLiveConfiguratorWorkflowMixin.stepCheckConfigureOrganisationForm(
+                         self, sequence, sequence_list, **kw)
+    self.assertEquals('Previous', response_dict['previous'])
+
+  def stepSetupOrganisationConfiguratorItem(self, sequence=None, sequence_list=None, **kw):
+    """ Create one Organisation with French information """
+    self._stepSetupOrganisationConfiguratorItem(
+        sequence=sequence,
+        sequence_list=sequence_list,
+        field_your_default_address_city='LILLE',
+        field_your_default_address_region='europe/western_europe/france',
+        field_your_group='g')
+
+  def stepCheckOrganisationConfiguratorItem(self, sequence=None, sequence_list=None, **kw):
+    """ Check if organisation was created fine """
+    business_configuration = sequence.get("business_configuration")
+    # last one: a step for what the client selected
+    organisation_config_save = business_configuration['5']
+    self.assertEquals(1, len(organisation_config_save.contentValues()))
+    # first item: configuration of our organisation
+    organisation_config_item = organisation_config_save['1']
+    self.assertEquals(organisation_config_item.getPortalType(),
+                      'Organisation Configurator Item')
+    # this organisation configurator items contains all properties that the
+    # orgnanisation will have.
+    self.assertEquals(organisation_config_item.getDefaultAddressCity(),
+                      'LILLE')
+    self.assertEquals(organisation_config_item.getDefaultAddressRegion(),
+                      'europe/western_europe/france')
+    self.assertEquals(organisation_config_item.getDefaultEmailText(),
+                      'me at example.com')
+    self.assertEquals('01234567890',
+        organisation_config_item.getDefaultTelephoneTelephoneNumber())
+
+    configuration_save_list = business_configuration.contentValues(
+                                             portal_type="Configuration Save")
+    self.assertEquals(5, len(configuration_save_list))
+
+    link_list = business_configuration.contentValues(portal_type="Link")
+    self.assertEquals(0, len(link_list))
+
+  def stepCheckMultiplePersonConfigurationItem(self, sequence=None, sequence_list=None, **kw):
+    """ 
+      Check if multiple Person Configuration Item of the Business
+      Configuration have been created successfully.
+    """
+    person_business_configuration_save = TestLiveConfiguratorWorkflowMixin.\
+              stepCheckMultiplePersonConfigurationItem(
+                                  self, sequence, sequence_list, **kw)
+
+    person_business_configuration_item =\
+          person_business_configuration_save['1']
+    self.assertEquals('Person Configurator Item',
+            person_business_configuration_item.getPortalType())
+    self.assertEquals('Person',
+            person_business_configuration_item.getFirstName())
+    self.assertEquals('Creator',
+            person_business_configuration_item.getLastName())
+    self.assertEquals(self.person_creator_reference,
+            person_business_configuration_item.getReference())
+    self.assertEquals('person_creator',
+            person_business_configuration_item.getPassword())
+    self.assertEquals('person/creator',
+            person_business_configuration_item.getFunction())
+
+    person_business_configuration_item =\
+          person_business_configuration_save['2']
+    self.assertEquals('Person Configurator Item',
+            person_business_configuration_item.getPortalType())
+    self.assertEquals('Person',
+            person_business_configuration_item.getFirstName())
+    self.assertEquals('Assignee',
+            person_business_configuration_item.getLastName())
+    self.assertEquals(self.person_assignee_reference,
+            person_business_configuration_item.getReference())
+    self.assertEquals('person_assignee',
+            person_business_configuration_item.getPassword())
+    self.assertEquals('person/assignee',
+            person_business_configuration_item.getFunction())
+
+    person_business_configuration_item =\
+          person_business_configuration_save['3']
+    self.assertEquals('Person Configurator Item',
+            person_business_configuration_item.getPortalType())
+    self.assertEquals('Person',
+            person_business_configuration_item.getFirstName())
+    self.assertEquals('Assignor',
+            person_business_configuration_item.getLastName())
+    self.assertEquals(self.person_assignor_reference,
+            person_business_configuration_item.getReference())
+    self.assertEquals('person_assignor',
+            person_business_configuration_item.getPassword())
+    self.assertEquals('person/assignor',
+            person_business_configuration_item.getFunction())
+
+  def test_consulting_workflow(self):
+    """ Test the consulting workflow configuration"""
+    sequence_list = SequenceList()
+    sequence_string = self.DEFAULT_SEQUENCE_LIST % dict(country='France')
+    sequence_list.addSequenceString(sequence_string)
+    sequence_list.play(self)
+
+
+class TestLiveStandardConfiguratorWorkflow(TestLiveConfiguratorWorkflowMixin):
+  """
+    Test Live Standard Configuration Workflow.
+  """
+  DEFAULT_SEQUENCE_LIST = """
+      stepCreateBusinessConfiguration 
+      stepTic
+      stepSetStandardWorkflow
+      stepTic
+      stepConfiguratorNext
+      stepTic
+      stepCheckBT5ConfiguratorItem
+      stepCheckConfigureOrganisationForm
+      stepSetupOrganisationConfiguratorItem%(country)s
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureUserAccountNumberForm
+      stepCheckOrganisationConfiguratorItem%(country)s
+      stepSetupUserAccounNumberSix
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureMultipleUserAccountForm
+      stepSetupMultipleUserAccountSix
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureAccountingForm
+      stepCheckMultiplePersonConfigurationItem
+      stepSetupAccountingConfiguration%(country)s
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigurePreferenceForm
+      stepCheckAccountingConfigurationItemList%(country)s
+      stepSetupPreferenceConfiguration%(country)s
+      stepConfiguratorNext
+      stepTic
+      stepCheckConfigureInstallationForm
+      stepCheckPreferenceConfigurationItemList%(country)s
+      stepSetupInstallConfiguration
+      stepConfiguratorNext
+      stepTic
+      stepCheckInstallConfiguration
+      stepStartConfigurationInstallation
+      stepTic
+      stepCheckInstanceIsConfigured%(country)s
+  """
+
+  def afterSetUp(self):
+    TestLiveConfiguratorWorkflowMixin.afterSetUp(self)
+    newId = self.portal.portal_ids.generateNewId
+    id_group ='testConfiguratorStandardWorkflow'
+
+    self.sales_manager_reference = 'sales_manager_%s' % newId(id_group)
+    self.purchase_manager_reference = 'purchase_manager_%s' % newId(id_group)
+    self.accounting_agent_reference = 'accounting_agent_%s' % newId(id_group)
+    self.accounting_manager_reference = 'accounting_manager_%s' % newId(id_group)
+    self.warehouse_agent_reference = 'warehouse_agent_%s' % newId(id_group)
+    self.simple_user_reference = 'simple_user_%s' % newId(id_group)
+
+    self.accountant_username_list = (self.accounting_agent_reference,
+                                     self.accounting_manager_reference,)
+    self.all_username_list = (self.sales_manager_reference,
+                              self.purchase_manager_reference,
+                              self.accounting_agent_reference,
+                              self.accounting_manager_reference,
+                              self.warehouse_agent_reference,
+                              self.simple_user_reference,)
+    self.sales_and_purchase_username_list = (self.sales_manager_reference,
+                                             self.purchase_manager_reference,)
+    self.warehouse_username_list = (self.warehouse_agent_reference,)
+    self.simple_username_list = (self.simple_user_reference,)
+
+    # set the company employees number
+    self.company_employees_number = '6'
+
+    # create our 6 users:
+    self.user_list = [
+      dict(
+                # A sales manager
+        field_your_first_name='Sales',
+        field_your_last_name='Manager',
+        field_your_reference=self.sales_manager_reference,
+        field_your_password='sales_manager',
+        field_your_password_confirm='sales_manager',
+        field_your_function='sales/manager',
+        field_your_default_email_text='sales_manager at example.com',
+        field_your_default_telephone_text='',
+      ), dict(
+                # A purchase manager
+        field_your_first_name='Purchase',
+        field_your_last_name='Manager',
+        field_your_reference=self.purchase_manager_reference,
+        field_your_password='purchase_manager',
+        field_your_password_confirm='purchase_manager',
+        field_your_function='purchase/manager',
+        field_your_default_email_text='purchase_manager at example.com',
+        field_your_default_telephone_text='',
+      ), dict(
+                # An Accounting agent
+        field_your_first_name='Accounting',
+        field_your_last_name='Agent',
+        field_your_reference=self.accounting_agent_reference,
+        field_your_password='accounting_agent',
+        field_your_password_confirm='accounting_agent',
+        field_your_function='af/accounting/agent',
+        field_your_default_email_text='accounting_agent at example.com',
+        field_your_default_telephone_text='',
+      ), dict(
+                # An Accounting Manager
+        field_your_first_name='Accounting',
+        field_your_last_name='Manager',
+        field_your_reference=self.accounting_manager_reference,
+        field_your_password='accounting_manager',
+        field_your_password_confirm='accounting_manager',
+        field_your_function='af/accounting/manager',
+        field_your_default_email_text='accounting_manager at example.com',
+        field_your_default_telephone_text='',
+      ), dict(
+                # A Warehouse Agent
+        field_your_first_name='Warehouse',
+        field_your_last_name='Agent',
+        field_your_reference=self.warehouse_agent_reference,
+        field_your_password='warehouse_agent',
+        field_your_password_confirm='warehouse_agent',
+        field_your_function='warehouse/agent',
+        field_your_default_email_text='warehouse_agent at example.com',
+        field_your_default_telephone_text='',
+      ), dict(
+          # A Simple user without meaningfull function ( hr / manager)
+        field_your_first_name='Simple',
+        field_your_last_name='User',
+        field_your_reference=self.simple_user_reference,
+        field_your_password='simple_user',
+        field_your_password_confirm='simple_user',
+        field_your_function='hr/manager',
+        field_your_default_email_text='simple_user at example.com',
+        field_your_default_telephone_text='',
+      ),
+    ]
+    # set preference group
+    self.preference_group = 'group/my_group' 
+
+  def stepCreateBusinessConfiguration(self,  sequence=None, sequence_list=None, **kw):
+    """ Create one Business Configuration """
+    module = self.portal.business_configuration_module
+    business_configuration = module.newContent(
+                               portal_type="Business Configuration",
+                               title='Test Configurator Standard Workflow')
+    next_dict = {}
+    sequence.edit(business_configuration=business_configuration, 
+                  next_dict=next_dict)
+
+  def stepSetStandardWorkflow(self, sequence=None, sequence_list=None, **kw):
+    """ Set Standard Workflow into Business Configuration """
+    business_configuration = sequence.get("business_configuration")
+    self.setBusinessConfigurationWorkflow(business_configuration,
+                                    "workflow_module/erp5_standard_workflow")
+
+  def stepSetupOrganisationConfiguratorItemFrance(self, sequence=None, sequence_list=None, **kw):
+    """ Create one Organisation with French information """
+    self._stepSetupOrganisationConfiguratorItem(
+        sequence=sequence,
+        sequence_list=sequence_list,
+        field_your_default_address_city='LILLE',
+        field_your_default_address_region='europe/western_europe/france')
+
+  def stepSetupOrganisationConfiguratorItemBrazil(self, sequence=None, sequence_list=None, **kw):
+    """ Create one Organisation with Brazilian information"""
+    self._stepSetupOrganisationConfiguratorItem(
+        sequence=sequence,
+        sequence_list=sequence_list,
+        field_your_default_address_city='CAMPOS',
+        field_your_default_address_region='americas/south_america/brazil')
+
+  def stepCheckConfigureOrganisationForm(self, sequence=None, sequence_list=None, **kw):
+    """ Check if Confire Organisation step was showed """
+    response_dict = sequence.get("response_dict")
+    TestLiveConfiguratorWorkflowMixin.stepCheckConfigureOrganisationForm(
+                         self, sequence, sequence_list, **kw)
+    self.assertEquals(None, response_dict['previous'])
+
+  def _stepCheckOrganisationConfiguratorItem(self, business_configuration,
+                                                   default_address_city,
+                                                   default_address_region):
+    """ Check if configuration key was created fine """
+    # last one: a step for what the client selected
+    organisation_config_save = business_configuration['3']
+    self.assertEquals(2, len(organisation_config_save.contentValues()))
+    # first item: configuration of our organisation
+    organisation_config_item = organisation_config_save['1']
+    self.assertEquals(organisation_config_item.getPortalType(),
+                      'Organisation Configurator Item')
+    # this organisation configurator items contains all properties that the
+    # orgnanisation will have.
+    self.assertEquals(organisation_config_item.getDefaultAddressCity(),
+                      default_address_city)
+    self.assertEquals(organisation_config_item.getDefaultAddressRegion(),
+                      default_address_region)
+    self.assertEquals(organisation_config_item.getDefaultEmailText(),
+                      'me at example.com')
+    self.assertEquals('01234567890',
+        organisation_config_item.getDefaultTelephoneTelephoneNumber())
+
+    # we also create a category for our group
+    category_config_item = organisation_config_save['2']
+    self.assertEquals(category_config_item.getPortalType(),
+                      'Category Configurator Item')
+    self.assertEquals(category_config_item.getTitle(),
+                      'My Organisation')
+
+    self.assertEquals(3, len(business_configuration.contentValues(portal_type="Configuration Save")))
+    self.assertEquals(0, len(business_configuration.contentValues(portal_type="Link")))
+
+  def stepCheckOrganisationConfiguratorItemFrance(self, sequence=None, sequence_list=None, **kw):
+    """ Check if configuration key was created fine """
+    self._stepCheckOrganisationConfiguratorItem(
+                business_configuration=sequence.get('business_configuration'),
+                default_address_city='LILLE',
+                default_address_region='europe/western_europe/france')
+
+  def stepCheckOrganisationConfiguratorItemBrazil(self, sequence=None, sequence_list=None, **kw):
+    """ Check if configuration key was created fine """
+    self._stepCheckOrganisationConfiguratorItem(
+                business_configuration=sequence.get('business_configuration'),
+                default_address_city='CAMPOS',
+                default_address_region='americas/south_america/brazil')
+
+  def stepCheckMultiplePersonConfigurationItem(self, sequence=None, sequence_list=None, **kw):
+    """ 
+      Check if multiple Person Configuration Item of the Business
+      Configuration have been created successfully.
+    """
+    person_business_configuration_save = TestLiveConfiguratorWorkflowMixin.\
+              stepCheckMultiplePersonConfigurationItem(
+                                  self, sequence, sequence_list, **kw)
+
+    person_business_configuration_item =\
+          person_business_configuration_save['1']
+    self.assertEquals('Person Configurator Item',
+            person_business_configuration_item.getPortalType())
+    self.assertEquals('Sales',
+            person_business_configuration_item.getFirstName())
+    self.assertEquals('Manager',
+            person_business_configuration_item.getLastName())
+    self.assertEquals(self.sales_manager_reference,
+            person_business_configuration_item.getReference())
+    self.assertEquals('sales_manager',
+            person_business_configuration_item.getPassword())
+    self.assertEquals('sales/manager',
+            person_business_configuration_item.getFunction())
+
+    # ...
+    person_business_configuration_item =\
+          person_business_configuration_save['3']
+    self.assertEquals('Person Configurator Item',
+            person_business_configuration_item.getPortalType())
+    self.assertEquals('Accounting',
+            person_business_configuration_item.getFirstName())
+    self.assertEquals('Agent',
+            person_business_configuration_item.getLastName())
+    self.assertEquals(self.accounting_agent_reference,
+            person_business_configuration_item.getReference())
+    self.assertEquals('accounting_agent',
+            person_business_configuration_item.getPassword())
+    self.assertEquals('af/accounting/agent',
+            person_business_configuration_item.getFunction())
+
   ##########################################
   # testExpressConfigurationInstance
   #########################################

Modified: erp5/trunk/bt5/erp5_configurator_standard/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_configurator_standard/bt/revision?rev=42139&r1=42138&r2=42139&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_configurator_standard/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_configurator_standard/bt/revision [utf8] Fri Jan  7 23:33:00 2011
@@ -1 +1 @@
-558
\ No newline at end of file
+560
\ No newline at end of file



More information about the Erp5-report mailing list