diff --git a/product/ERP5/tests/testERP5Credential.py b/product/ERP5/tests/testERP5Credential.py index e04dca7697bb07c4e23c14aab697a377297a4821..78928d7747472bcd4a0ea60f007020e852d320d2 100644 --- a/product/ERP5/tests/testERP5Credential.py +++ b/product/ERP5/tests/testERP5Credential.py @@ -528,11 +528,11 @@ class TestERP5Credential(ERP5TypeTestCase): self.assertEquals(related_person.getDefaultCredentialQuestionAnswer(), 'Renault 4L') - def stepCreateCredentialRecovery(self, sequence=None, sequence_list=None, + def stepCreatePerson(self, sequence=None, sequence_list=None, **kw): - ''' - Create a simple subscription request - ''' + """ + Create a simple person + """ portal = self.getPortalObject() # create a person with 'secret' as password self.login() @@ -545,9 +545,18 @@ class TestERP5Credential(ERP5TypeTestCase): assignment = barney.newContent(portal_type='Assignment', function='member') assignment.open() - transaction.commit() - self.tic() - sequence.edit(barney=barney) + sequence.edit(person_reference=barney.getReference()) + + def stepCreateCredentialRecovery(self, sequence=None, sequence_list=None, + **kw): + ''' + Create a simple subscription request + ''' + portal = self.getPortalObject() + person_reference = sequence["person_reference"] + person = portal.portal_catalog.getResultValue(portal_type="Person", + reference=person_reference) + sequence.edit(barney=person) # check barney can log in the system self._assertUserExists('barney', 'secret') self.login('barney') @@ -561,9 +570,25 @@ class TestERP5Credential(ERP5TypeTestCase): 'Credential Recovery') # associate it with barney - credential_recovery.setDestinationDecisionValue(barney) + credential_recovery.setDestinationDecisionValue(person) sequence.edit(credential_recovery=credential_recovery) + def stepRequestCredentialRecoveryWithERP5Site_newCredentialRecovery(self, + sequence=None, sequence_list=None, **kw): + person_reference = sequence["person_reference"] + self.portal.ERP5Site_newCredentialRecovery(reference=person_reference) + + def stepCheckCredentialRecoveryCreation(self, sequence=None, + sequence_list=None, **kw): + person_reference = sequence["person_reference"] + result_list = self.portal.portal_catalog( + portal_type='Credential Recovery', reference=person_reference) + self.assertEquals(1, len(result_list)) + credential_recovery = result_list[0] + person = credential_recovery.getDestinationDecisionValue() + self.assertEquals("Barney", person.getTitle()) + self.assertEquals("barney@duff.com", person.getEmailText()) + def stepSubmitCredentialRecovery(self, sequence=None, sequence_list=None, **kw): credential_recovery = sequence.get('credential_recovery') @@ -738,7 +763,8 @@ class TestERP5Credential(ERP5TypeTestCase): log in the system with this new password ''' sequence_list = SequenceList() - sequence_string = 'CreateCredentialRecovery Tic '\ + sequence_string = 'CreatePerson Tic '\ + 'CreateCredentialRecovery Tic '\ 'SubmitCredentialRecovery Tic '\ 'AcceptCredentialRecovery Tic '\ 'CheckEmailIsSent Tic '\ @@ -885,6 +911,18 @@ class TestERP5Credential(ERP5TypeTestCase): assignment_role="client") self.stepCheckAssignmentAfterActiveLogin(sequence) + def testERP5Site_newCredentialRecoveryWithNoSecurityQuestion(self): + """ + Check that password recovery works in case if not security question with + answer is defined + """ + sequence_list = SequenceList() + sequence_string = "CreatePerson Tic " \ + "RequestCredentialRecoveryWithERP5Site_newCredentialRecovery Tic " \ + "CheckCredentialRecoveryCreation" + sequence_list.addSequenceString(sequence_string) + sequence_list.play(self) + def test_xx_checkCredentialQuestionIsNotCaseSensitive(self): ''' check that if the user enter an answer with a diffent case, this will still