def test_create_account_page(self): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) response = self.client.get(f'/account/create-account/{token}') self.assertIn(b'Consider using your ONS username', response.data) self.assertIn(b'at least one capital letter', response.data) self.assertEqual(response.status_code, 200)
def test_change_email_uaa_failure(self, mock_request): with self.app.app_context(): with patch("response_operations_ui.views.accounts.NotifyController" ) as mock_notify: with self.client.session_transaction() as session: session["user_id"] = user_id mock_notify()._send_message.return_value = mock.Mock() token_dict = {"email": test_email, "user_id": user_id} token = token_decoder.generate_email_token( json.dumps(token_dict)) mock_request.post(url_uaa_token, json={"access_token": self.access_token}, status_code=201) mock_request.get(url_uaa_user_by_id, json=uaa_user_by_id_json, status_code=200) mock_request.put(url_uaa_user_by_id, status_code=403) mock_request.get(url_uaa_get_accounts, json={"totalResults": 0}, status_code=200) response = self.client.get( f"/account/verify-email/{token}", follow_redirects=True, ) self.assertIn(b"Failed to update email. Please try again", response.data)
def test_create_account(self, mock_request): with self.app.app_context(): with patch("response_operations_ui.views.accounts.NotifyController" ) as mock_notify: mock_notify()._send_message.return_value = mock.Mock() token = token_decoder.generate_email_token(test_email) mock_request.post(url_uaa_token, json={"access_token": self.access_token}, status_code=201) mock_request.post(url_uaa_create_account, json={}, status_code=201) response = self.client.post( f"/account/create-account/{token}", follow_redirects=True, data={ "password": "******", "password_confirm": "TestPassword1!", "user_name": "testname", "first_name": "Test", "last_name": "Account", }, ) self.assertIn(b"Account successfully created", response.data) self.assertIn(b"Sign in", response.data) self.assertEqual(response.status_code, 200)
def test_reset_password_page(self): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) response = self.client.get(f'/passwords/reset-password/{token}') self.assertIn(b'New password', response.data) self.assertIn(b'at least one capital letter', response.data) self.assertEqual(response.status_code, 200)
def test_reset_password_old_password(self, mock_request): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) mock_request.post(url_uaa_token, json={"access_token": self.access_token}, status_code=201) mock_request.post(url_uaa_reset_code, json={"code": "testcode"}, status_code=201) mock_request.post(url_uaa_reset_pw, json={}, status_code=422) mock_request.get(url_uaa_get_accounts, json={ "totalResults": 1, "resources": [{ "userName": "******" }] }, status_code=200) response = self.client.post(f"/passwords/reset-password/{token}", follow_redirects=True, data={ "password": '******', "password_confirm": 'TestPassword1!' }) self.assertIn( b'Please choose a different password or login with the old password', response.data) self.assertEqual(response.status_code, 200)
def test_reset_password(self, mock_request): with self.app.app_context(): with patch( 'response_operations_ui.views.passwords.NotifyController' ) as mock_notify: mock_notify()._send_message.return_value = mock.Mock() token = token_decoder.generate_email_token(test_email) mock_request.post(url_uaa_token, json={"access_token": self.access_token}, status_code=201) mock_request.post(url_uaa_reset_code, json={"code": "testcode"}, status_code=201) mock_request.post(url_uaa_reset_pw, status_code=200) mock_request.get(url_uaa_get_accounts, json={ "totalResults": 1, "resources": [{ "userName": "******", "name": { "givenName": "Test" } }] }, status_code=200) response = self.client.post( f"/passwords/reset-password/{token}", follow_redirects=True, data={ "password": '******', "password_confirm": 'TestPassword1!' }) self.assertIn(b'Your password has been changed', response.data) self.assertEqual(response.status_code, 200)
def test_reset_password_fails(self, mock_request): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) mock_request.post(url_uaa_token, json={"access_token": self.access_token}, status_code=201) mock_request.post(url_uaa_reset_code, json={"code": "testcode"}, status_code=201) mock_request.post(url_uaa_reset_pw, json={}, status_code=403) mock_request.get(url_uaa_get_accounts, json={ "totalResults": 1, "resources": [{ "userName": "******" }] }, status_code=200) response = self.client.post( f"/passwords/reset-password/{token}", follow_redirects=True, data={ "password": "******", "password_confirm": "TestPassword1!" }, ) self.assertIn(b"problem trying to reset your password.", response.data) self.assertEqual(response.status_code, 200)
def test_reset_password(self, mock_request): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) mock_request.post(url_send_cre_notify, json={'emailAddress': test_email}, status_code=201) mock_request.post( url_uaa_token, json={"access_token": self.access_token.decode()}, status_code=201) mock_request.post(url_uaa_reset_code, json={"code": "testcode"}, status_code=201) mock_request.post(url_uaa_reset_pw, status_code=200) mock_request.get(url_uaa_get_accounts, json={ "totalResults": 1, "resources": [{ "userName": "******", "name": { "givenName": "Test" } }] }, status_code=200) response = self.client.post(f"/passwords/reset-password/{token}", follow_redirects=True, data={ "password": '******', "password_confirm": 'TestPassword1!' }) self.assertIn(b'Your password has been changed', response.data) self.assertEqual(response.status_code, 200)
def test_create_account_different_passwords(self, mock_request): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) response = self.client.post(f"/account/create-account/{token}", follow_redirects=True, data={"password": '******', "password_confirm": 'WrongPassword!', "user_name": 'testname', "first_name": 'Test', "last_name": 'Account'}) self.assertIn(b'Your passwords do not match', response.data) self.assertEqual(response.status_code, 200)
def test_reset_password_different_passwords(self, mock_request): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) response = self.client.post(f"/passwords/reset-password/{token}", follow_redirects=True, data={ "password": '******', "password_confirm": 'WrongPassword!' }) self.assertIn(b'Your passwords do not match', response.data) self.assertEqual(response.status_code, 200)
def test_create_account_username_taken(self, mock_request): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) mock_request.post(url_uaa_token, json={"access_token": self.access_token}, status_code=201) mock_request.post(url_uaa_create_account, json={}, status_code=409) response = self.client.post(f"/account/create-account/{token}", follow_redirects=True, data={"password": '******', "password_confirm": 'TestPassword1!', "user_name": 'testname', "first_name": 'Test', "last_name": 'Account'}) self.assertIn(b'Username already in use; please choose another', response.data) self.assertEqual(response.status_code, 200)
def test_create_account_fails(self, mock_request): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) mock_request.post(url_uaa_token, json={"access_token": self.access_token}, status_code=201) mock_request.post(url_uaa_create_account, json={}, status_code=403) response = self.client.post(f"/account/create-account/{token}", follow_redirects=True, data={"password": '******', "password_confirm": 'TestPassword1!', "user_name": 'testname', "first_name": 'Test', "last_name": 'Account'}) self.assertIn(b'problem trying to create your account.', response.data) self.assertEqual(response.status_code, 200)
def test_generating_and_decoding_email_token(self): with self.app.app_context(): try: email_token = generate_email_token("*****@*****.**") except InternalServerError: self.fail("Exception raised in generating email token") email = decode_email_token(email_token) self.assertTrue(email == "*****@*****.**", "Email not successfully decoded from token") time.sleep(2) with self.assertRaises(SignatureExpired): decode_email_token(email_token, 1) with self.assertRaises(BadSignature): decode_email_token("absoluterubbish")
def test_create_account(self, mock_request): with self.app.app_context(): token = token_decoder.generate_email_token(test_email) mock_request.post(url_send_cre_notify, json={'emailAddress': test_email}, status_code=201) mock_request.post( url_uaa_token, json={"access_token": self.access_token.decode()}, status_code=201) mock_request.post(url_uaa_create_account, json={}, status_code=201) response = self.client.post(f"/account/create-account/{token}", follow_redirects=True, data={ "password": '******', "password_confirm": 'TestPassword1!', "user_name": 'testname', "first_name": 'Test', "last_name": 'Account' }) self.assertIn(b'Account successfully created', response.data) self.assertIn(b'Sign in', response.data) self.assertEqual(response.status_code, 200)