def test_set_new_password(party_account_fixture): fixture = party_account_fixture system_account = fixture.system_account new_password_request = NewPasswordRequest(system_account=system_account) Session.add(new_password_request) new_password = system_account.password * 2 account_management_interface = AccountManagementInterface() Session.add(account_management_interface) # Case: the key is invalid invalid_key = 'in va lid key which is also too long and contains spaces' account_management_interface.email = system_account.email account_management_interface.secret = invalid_key account_management_interface.password = new_password with expected(KeyException): account_management_interface.choose_new_password() # Case: the email is invalid invalid_email = 'i am not a valid email' account_management_interface.email = invalid_email account_management_interface.secret = new_password_request.as_secret_key() account_management_interface.password = new_password with expected(InvalidEmailException): account_management_interface.choose_new_password() # Case: the key is valid account_management_interface.email = system_account.email account_management_interface.secret = new_password_request.as_secret_key() account_management_interface.password = new_password account_management_interface.choose_new_password() system_account.authenticate(new_password) # Should not raise exception
def reset_password_from_url(self, fixture): account = fixture.system_account new_password_request = NewPasswordRequest(system_account=account) Session.add(new_password_request) fixture.browser.open('/a_ui/choosePassword?email=%s&secret=%s' % \ (account.email, new_password_request.as_secret_key())) new_password = '******' fixture.browser.type('//input[@name="password"]', new_password ) fixture.browser.type('//input[@name="repeat_password"]', new_password ) fixture.browser.click('//input[@value="Set new password"]') vassert( fixture.browser.location_path == '/a_ui/passwordChanged' )
def test_reset_password_from_url(web_fixture, party_account_fixture, accounts_web_fixture): fixture = accounts_web_fixture account = party_account_fixture.system_account new_password_request = NewPasswordRequest(system_account=account) Session.add(new_password_request) fixture.browser.open('/a_ui/choosePassword?choose_password-email=%s&choose_password-secret=%s' % \ (account.email, new_password_request.as_secret_key())) new_password = '******' fixture.browser.type(XPath.input_labelled('Password'), new_password) fixture.browser.type(XPath.input_labelled('Re-type password'), new_password) fixture.browser.click(XPath.button_labelled('Set new password')) assert fixture.browser.current_url.path == '/a_ui/passwordChanged'
def test_reset_password_from_url(web_fixture, party_account_fixture, accounts_web_fixture): fixture = accounts_web_fixture account = party_account_fixture.system_account new_password_request = NewPasswordRequest(system_account=account) Session.add(new_password_request) fixture.browser.open('/a_ui/choosePassword?choose_password-email=%s&choose_password-secret=%s' % \ (account.email, new_password_request.as_secret_key())) new_password = '******' fixture.browser.type('//input[@name="choose_password-password"]', new_password) fixture.browser.type('//input[@name="choose_password-repeat_password"]', new_password) fixture.browser.click('//input[@value="Set new password"]') assert fixture.browser.current_url.path == '/a_ui/passwordChanged'