コード例 #1
0
 def test_send_link_ok(self):
     user = self.create_test_user(username='******')
     request = self.factory.post('', {
         'login': user.username,
     })
     time_before = math.floor(time.time())
     with self.assert_one_mail_sent() as sent_emails:
         response = send_reset_password_link(request)
     time_after = math.ceil(time.time())
     self.assert_valid_response(response, status.HTTP_200_OK)
     sent_email = sent_emails[0]
     self.assertEqual(
         sent_email.from_email,
         REST_REGISTRATION_WITH_RESET_PASSWORD['VERIFICATION_FROM_EMAIL'],
     )
     self.assertListEqual(sent_email.to, [user.email])
     url = self.assert_one_url_line_in_text(sent_email.body)
     verification_data = self.assert_valid_verification_url(
         url,
         expected_path=RESET_PASSWORD_VERIFICATION_URL,
         expected_query_keys={'signature', 'user_id', 'timestamp'},
     )
     self.assertEqual(int(verification_data['user_id']), user.id)
     url_sig_timestamp = int(verification_data['timestamp'])
     self.assertGreaterEqual(url_sig_timestamp, time_before)
     self.assertLessEqual(url_sig_timestamp, time_after)
     signer = ResetPasswordSigner(verification_data)
     signer.verify()
コード例 #2
0
 def _assert_valid_verification_data(self, verification_data, user, timer):
     self.assertEqual(int(verification_data['user_id']), user.id)
     url_sig_timestamp = int(verification_data['timestamp'])
     self.assertGreaterEqual(url_sig_timestamp, timer.start_time)
     self.assertLessEqual(url_sig_timestamp, timer.end_time)
     signer = ResetPasswordSigner(verification_data)
     signer.verify()
コード例 #3
0
def _assert_valid_reset_password_verification_data(verification_data, user,
                                                   timer):
    assert int(verification_data['user_id']) == user.id
    url_sig_timestamp = int(verification_data['timestamp'])
    assert url_sig_timestamp >= timer.start_time
    assert url_sig_timestamp <= timer.end_time
    signer = ResetPasswordSigner(verification_data)
    signer.verify()
コード例 #4
0
 def test_send_link_with_username_as_verification_id_ok(self):
     user = self.create_test_user(username='******')
     request = self.create_post_request({
         'login': user.username,
     })
     with self.assert_one_mail_sent() as sent_emails, self.timer() as timer:
         response = self.view_func(request)
         self.assert_valid_response(response, status.HTTP_200_OK)
     sent_email = sent_emails[0]
     verification_data = self._assert_valid_verification_email(
         sent_email, user)
     self.assertEqual(verification_data['user_id'], user.username)
     url_sig_timestamp = int(verification_data['timestamp'])
     self.assertGreaterEqual(url_sig_timestamp, timer.start_time)
     self.assertLessEqual(url_sig_timestamp, timer.end_time)
     signer = ResetPasswordSigner(verification_data)
     signer.verify()
コード例 #5
0
 def _assert_valid_send_link_email(self, sent_email, user, timer):
     self.assertEqual(
         sent_email.from_email,
         REST_REGISTRATION_WITH_RESET_PASSWORD['VERIFICATION_FROM_EMAIL'],
     )
     self.assertListEqual(sent_email.to, [user.email])
     url = self.assert_one_url_line_in_text(sent_email.body)
     verification_data = self.assert_valid_verification_url(
         url,
         expected_path=RESET_PASSWORD_VERIFICATION_URL,
         expected_fields={'signature', 'user_id', 'timestamp'},
     )
     self.assertEqual(int(verification_data['user_id']), user.id)
     url_sig_timestamp = int(verification_data['timestamp'])
     self.assertGreaterEqual(url_sig_timestamp, timer.start_time)
     self.assertLessEqual(url_sig_timestamp, timer.end_time)
     signer = ResetPasswordSigner(verification_data)
     signer.verify()