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)
예제 #2
0
 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)
예제 #3
0
 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)