def test_email_in_use(self): token = get_token( self.user, "activation_secondary_email", secondary_email="*****@*****.**" ) executed = self.make_request(self.verify_query(token)) self.assertEqual(executed["success"], False) self.assertTrue(executed["errors"])
def test_reset_password_invalid_form(self): token = get_token(self.user1, "password_reset") query = self.get_query(token, "wrong_pass") executed = self.make_request(query) self.assertEqual(executed["success"], False) self.assertTrue(executed["errors"]) self.user1.refresh_from_db() self.assertFalse(self.user1_old_pass != self.user1.password)
def test_reset_password(self): token = get_token(self.user1, "password_reset") query = self.get_query(token) executed = self.make_request(query) self.assertEqual(executed["success"], True) self.assertEqual(executed["errors"], None) self.user1.refresh_from_db() self.assertFalse(self.user1_old_pass == self.user1.password)
def test_verify_secondary_email(self): token = get_token( self.user, "activation_secondary_email", secondary_email="*****@*****.**", ) executed = self.make_request(self.verify_query(token)) self.assertEqual(executed["success"], True) self.assertFalse(executed["errors"])
def test_reset_password_verify_user(self): self.user1.verified = False self.user1.save() token = get_token(self.user1, "password_reset") query = self.get_query(token) executed = self.make_request(query) self.assertEqual(executed["success"], True) self.assertEqual(executed["errors"], None) self.user1.refresh_from_db() self.assertFalse(self.user1_old_pass == self.user1.password) self.assertTrue(self.user1.status.verified)
def test_verify_user(self): signal_received = False def receive_signal(sender, user, signal): self.assertEqual(user.id, self.user1.id) nonlocal signal_received signal_received = True user_verified.connect(receive_signal) token = get_token(self.user1, "activation") executed = self.make_request(self.verify_query(token)) self.assertEqual(executed["success"], True) self.assertFalse(executed["errors"]) self.assertTrue(signal_received)
def test_revoke_refresh_tokens_on_password_reset(self): executed = self.make_request(self.get_login_query()) self.user1.refresh_from_db() refresh_tokens = self.user1.refresh_tokens.all() for token in refresh_tokens: self.assertFalse(token.revoked) token = get_token(self.user1, "password_reset") query = self.get_query(token) executed = self.make_request(query) self.assertEqual(executed["success"], True) self.assertEqual(executed["errors"], None) self.user1.refresh_from_db() self.assertFalse(self.user1_old_pass == self.user1.password) refresh_tokens = self.user1.refresh_tokens.all() for token in refresh_tokens: self.assertTrue(token.revoked)
def test_already_set_password(self): token = get_token(self.user1, "password_set") query = self.get_query(token) executed = self.make_request(query) self.assertEqual(executed["success"], False) self.assertEqual( executed["errors"], { "nonFieldErrors": [ { "code": "password_already_set", "message": "Password already set for account.", } ] }, ) self.user1.refresh_from_db() self.assertFalse(self.user1_old_pass != self.user1.password)
def resolve_mutation(cls, root, info, **kwargs): email = kwargs.get("email") response = super(CustomRegister, cls).resolve_mutation(root, info, **kwargs) if response.success: user = CustomUser.objects.get(email=email) set_password_token = get_token(user, TokenAction.PASSWORD_SET, **kwargs) message = EmailMessage(to=[email], from_email=settings.DEFAULT_FROM_EMAIL) message.template_id = settings.SET_EMAIL_TEMPLATE_ID message.merge_global_data = { "jmeno": "TODO_REMOVE_THIS_OR_FORCE_ADDING_NAME_TO_REGISTRATION", "activation_url": f"{settings.BASE_FRONTED_URL}/password-set/{set_password_token}", "odesilatel": settings.DEFAULT_FROM_EMAIL, } message.send() return response
def test_other_token(self): token = get_token(self.user2, "password_reset") executed = self.make_request(self.verify_query(token)) self.assertEqual(executed["success"], False) self.assertEqual(executed["errors"]["nonFieldErrors"], Messages.INVALID_TOKEN)
def test_verified_user(self): token = get_token(self.user2, "activation") executed = self.make_request(self.verify_query(token)) self.assertEqual(executed["success"], False) self.assertEqual(executed["errors"]["nonFieldErrors"], Messages.ALREADY_VERIFIED)
def test_verify_user(self): token = get_token(self.user1, "activation") executed = self.make_request(self.verify_query(token)) self.assertEqual(executed["success"], True) self.assertFalse(executed["errors"])