def account_url_metadata(request): token = generate_simple_token(request.data.get('email')) domain = request.get_host() if request.is_secure(): protocol = "https://" else: protocol = "http://" uid = urlsafe_base64_encode(force_bytes(request.data.get('email'))) time = datetime.now() time = datetime.strftime(time, '%d-%B-%Y %H:%M') return (token, domain, protocol, uid, time)
def test_password_reset_fails(self): """ Test password reset fails if password isn't strong """ self.passwords['password'] = '******' self.passwords['confirm_password'] = '******' email = self.new_user['email'] self.create_user(self.new_user) self.activate_user(email) uid = urlsafe_base64_encode(force_bytes(email)) token = generate_simple_token(email) response = self.test_client().post( '/api/v1/accounts/password-reset/{}/{}/'.format(uid, token), self.passwords) self.assertEqual(400, response.status_code) self.assertIn('This password is too common.', str(response.data))
def test_password_reset_success(self): """ Test user can reset their password """ self.passwords['password'] = '******' self.passwords['confirm_password'] = '******' email = self.new_user['email'] self.create_user(self.new_user) self.activate_user(email) uid = urlsafe_base64_encode(force_bytes(email)) token = generate_simple_token(email) response = self.test_client().post( '/api/v1/accounts/password-reset/{}/{}/'.format(uid, token), self.passwords) self.assertEqual(200, response.status_code) self.assertEqual('Password successfully updated', str(response.data['message']))
def setUp(self): self.blank_user = { 'first_name': "", 'last_name': "", 'email': "", 'username': "", 'password': "", 'user_type': "" } self.new_user = { 'first_name': "Erykah", 'last_name': "Badu", 'email': "*****@*****.**", 'username': "******", 'password': "******", 'user_type': "professional" } self.update_user = { "location": "Adromeda", 'user_type': "professional" } self.passwords = { "old_password": "******", "new_password": "******", "confirm_password": "******" } self.admin = { 'first_name': "Admin", 'last_name': "Strator", 'email': "*****@*****.**", 'username': "******", 'password': "******", 'user_type': "professional", 'admin': True } self.user_token = generate_simple_token(self.new_user['email']) admin = User.objects.create(**self.admin) self.admin_token = admin.token
def activate_user(self, email): uid = urlsafe_base64_encode(force_bytes(email)) token = generate_simple_token(email) response = self.test_client().get( '/api/v1/accounts/activate/{}/{}/'.format(uid, token)) return response