[Erp5-report] r38780 fabien - in /experimental/bt5/erp5_credential: TestTemplateItem/ bt/

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Sep 30 10:29:00 CEST 2010


Author: fabien
Date: Thu Sep 30 10:28:58 2010
New Revision: 38780

URL: http://svn.erp5.org?rev=38780&view=rev
Log:
automatic workflow is now included by default on credential portal_types as it
need preferences to be checked to have the automatic transition. Adapt the test
to fit this.

minor changes due to the portal_status message changes
don't check that Credential Request creation redirect to login form because in
the normal erp5 usage (not web mode) we don't want this behavior

Modified:
    experimental/bt5/erp5_credential/TestTemplateItem/testERP5Credential.py
    experimental/bt5/erp5_credential/bt/revision

Modified: experimental/bt5/erp5_credential/TestTemplateItem/testERP5Credential.py
URL: http://svn.erp5.org/experimental/bt5/erp5_credential/TestTemplateItem/testERP5Credential.py?rev=38780&r1=38779&r2=38780&view=diff
==============================================================================
--- experimental/bt5/erp5_credential/TestTemplateItem/testERP5Credential.py [utf8] (original)
+++ experimental/bt5/erp5_credential/TestTemplateItem/testERP5Credential.py [utf8] Thu Sep 30 10:28:58 2010
@@ -96,7 +96,8 @@ class TestERP5Credential(ERP5TypeTestCas
            )
 
   def beforeTearDown(self):
-    self._removeAutomaticWorkflow()
+    self.login()
+    transaction.abort()
     # clear modules if necessary
     module_list = (self.portal.getDefaultModule('Credential Request'),
         self.portal.getDefaultModule('Credential Update'),
@@ -104,8 +105,42 @@ class TestERP5Credential(ERP5TypeTestCas
         self.portal.getDefaultModule('Person'))
     for module in module_list:
       module.manage_delObjects(list(module.objectIds()))
+    self._disablePreference()
     transaction.commit()
     self.tic()
+    self.logout()
+
+  def _getPreference(self):
+    portal_preferences = self.getPreferenceTool()
+    preference = getattr(portal_preferences, 'test_site_preference', None)
+    if preference is None:
+      preference = portal_preferences.newContent(portal_type='System Preference',
+                                title='Default Site Preference',
+                                id='test_site_preference')
+    return preference
+
+  def _enablePreference(self):
+    preference = self._getPreference()
+    if preference.getPreferenceState() == 'disabled':
+      preference.enable()
+
+  def _disablePreference(self):
+    preference = self._getPreference()
+    if preference.getPreferenceState() in ('enable', 'global'):
+      preference.disable()
+
+  def stepSetAutomaticApprovalPreferences(self, sequence=None,
+      sequence_list=None, **kw):
+    self.login()
+    preference = self._getPreference()
+    preference.setPreferredCredentialRequestAutomaticApproval(True)
+    preference.setPreferredOrganisationCredentialUpdateAutomaticApproval(True)
+    preference.setPreferredCredentialRecoveryAutomaticApproval(True)
+    preference.setPreferredPersonCredentialUpdateAutomaticApproval(True)
+    self._enablePreference()
+    transaction.commit()
+    self.tic()
+    self.logout()
 
   def getUserFolder(self):
     """Returns the acl_users. """
@@ -143,40 +178,6 @@ class TestERP5Credential(ERP5TypeTestCas
            "Plugin %s should not have authenticated '%s' with password '%s'" %
            (plugin_name, login, password))
 
-  def _setAutomaticWorkflowOnPortalTypeList(self, portal_type_list):
-    '''
-      set the workflow credential_automatic_accept_interraction_workflow on
-      all portal_types parameters
-    '''
-    if not isinstance(portal_type_list, list):
-      portal_type_list = [portal_type_list]
-    for portal_type in portal_type_list:
-      pw = self.getWorkflowTool()
-      workflow_id = 'credential_automatic_accept_interraction_workflow'
-      cbt = pw._chains_by_type
-      props = {}
-      for id, wf_ids in cbt.iteritems():
-        if id == portal_type:
-          wf_ids = list(wf_ids) + [workflow_id]
-        props['chain_%s' % id] = ','.join(wf_ids)
-      pw.manage_changeWorkflows('', props = props)
-
-  def _removeAutomaticWorkflow(self):
-    '''
-      by default, the automatic workflow is not defined on any portal_type.
-      (should be define in project specific bt). The methode remove it.
-    '''
-    pw = self.getWorkflowTool()
-    workflow_id = 'credential_automatic_accept_interraction_workflow'
-    cbt = pw._chains_by_type
-    props = {}
-    for id, wf_ids in cbt.iteritems():
-      if workflow_id in wf_ids:
-        wf_ids = list(wf_ids)
-        wf_ids.remove(workflow_id)
-      props['chain_%s' % id] = ','.join(wf_ids)
-    pw.manage_changeWorkflows('', props = props)
-
   def stepCreateSimpleSubscriptionRequest(self, sequence=None, sequence_list=None,
       **kw):
     '''
@@ -198,12 +199,9 @@ class TestERP5Credential(ERP5TypeTestCas
         password='secret',
         default_email_text='homer.simpson at fox.com'
         )
-    self.assertTrue('portal_status_message=Credential%20Request%20Created.' in result)
-    # check it returned to login_form
-    self.assertTrue('login_form' in result)
+    self.assertTrue('portal_status_message=A%20new%20credential%20request%20'\
+        'has%20been%20created.' in result)
 
-    transaction.commit()
-    self.tic()
     credential_request_module = self.portal.getDefaultModule('Credential Request')
     result = credential_request_module.contentValues(\
         portal_type='Credential Request', first_name='Homer',
@@ -244,7 +242,8 @@ class TestERP5Credential(ERP5TypeTestCas
         password='new_password',
         default_email_text='homie.simpsons at fox.com'
         )
-    self.assertTrue('portal_status_message=Credential%20Update%20Created.' in result)
+    self.assertTrue('portal_status_message=A%20new%20credential%20request%20'\
+        'has%20been%20created.' in result)
     credential_request_module = self.portal.getDefaultModule('Credential Update')
     result = credential_request_module.contentValues(\
         portal_type='Credential Update', first_name='Homie',
@@ -286,14 +285,6 @@ class TestERP5Credential(ERP5TypeTestCas
     self.assertEquals(related_person.getDefaultEmailText(),
     'homie.simpsons at fox.com')
 
-  def stepSetAutomaticWorkflowOnCredentialRequest(self, sequence=None,
-      sequence_list=None, **kw):
-    self._setAutomaticWorkflowOnPortalTypeList('Credential Request')
-
-  def stepSetAutomaticWorkflowOnCredentialUpdate(self, sequence=None,
-      sequence_list=None, **kw):
-    self._setAutomaticWorkflowOnPortalTypeList('Credential Update')
-
   def stepCreateSubscriptionRequestWithSecurityQuestionCategory(self, sequence=None,
       sequence_list=None, **kw):
     request = self.portal.REQUEST
@@ -312,9 +303,8 @@ class TestERP5Credential(ERP5TypeTestCas
         default_credential_question_question='credential/library_card_number',
         default_credential_question_answer='923R4293'
         )
-    self.assertTrue('portal_status_message=Credential%20Request%20Created.' in result)
-    # check it returned to login_form
-    self.assertTrue('login_form' in result)
+    self.assertTrue('portal_status_message=A%20new%20credential%20request%20'\
+        'has%20been%20created.' in result)
 
     transaction.commit()
     self.tic()
@@ -355,9 +345,8 @@ class TestERP5Credential(ERP5TypeTestCas
             'car model do you have ?',
         default_credential_question_answer='Renault 4L'
         )
-    self.assertTrue('portal_status_message=Credential%20Request%20Created.' in result)
-    # check it returned to login_form
-    self.assertTrue('login_form' in result)
+    self.assertTrue('portal_status_message=A%20new%20credential%20request%20'\
+        'has%20been%20created.' in result)
 
     transaction.commit()
     self.tic()
@@ -395,9 +384,9 @@ class TestERP5Credential(ERP5TypeTestCas
     log in the system.
     '''
     sequence_list = SequenceList()
-    sequence_string = 'CreateSimpleSubscriptionRequest '\
+    sequence_string = 'CreateSimpleSubscriptionRequest Tic '\
                       'AcceptSubscriptionRequest Tic '\
-                      'CheckAccountIsCreated '\
+                      'CheckAccountIsCreated Tic '\
 
     sequence_list.addSequenceString(sequence_string)
     sequence_list.play(self)
@@ -426,7 +415,7 @@ class TestERP5Credential(ERP5TypeTestCas
     intervention
     '''
     sequence_list = SequenceList()
-    sequence_string = 'SetAutomaticWorkflowOnCredentialRequest '\
+    sequence_string = 'SetAutomaticApprovalPreferences '\
                       'CreateSimpleSubscriptionRequest Tic '\
                       'CheckAccountIsCreated '\
 
@@ -441,7 +430,7 @@ class TestERP5Credential(ERP5TypeTestCas
     intervention
     '''
     sequence_list = SequenceList()
-    sequence_string = 'SetAutomaticWorkflowOnCredentialUpdate '\
+    sequence_string = 'SetAutomaticApprovalPreferences '\
                       'CreateSimpleSubscriptionRequest '\
                       'AcceptSubscriptionRequest Tic '\
                       'CreateCredentialUpdate Tic '\

Modified: experimental/bt5/erp5_credential/bt/revision
URL: http://svn.erp5.org/experimental/bt5/erp5_credential/bt/revision?rev=38780&r1=38779&r2=38780&view=diff
==============================================================================
--- experimental/bt5/erp5_credential/bt/revision [utf8] (original)
+++ experimental/bt5/erp5_credential/bt/revision [utf8] Thu Sep 30 10:28:58 2010
@@ -1 +1 @@
-222
\ No newline at end of file
+223




More information about the Erp5-report mailing list