Files
sentinel/tests/sentry/api/endpoints/test_user_emails_confirm.py
2024-02-15 17:01:50 +00:00

45 lines
1.9 KiB
Python

from unittest import mock
from sentry.models.useremail import UserEmail
from sentry.testutils.cases import APITestCase
from sentry.testutils.silo import control_silo_test
@control_silo_test
class UserEmailsConfirmTest(APITestCase):
endpoint = "sentry-api-0-user-emails-confirm"
method = "post"
def setUp(self):
super().setUp()
self.login_as(self.user)
@mock.patch("sentry.models.User.send_confirm_email_singular")
def test_can_confirm(self, send_confirm_email):
email = UserEmail.objects.create(email="[email protected]", is_verified=False, user=self.user)
email.save()
self.get_success_response(self.user.id, email="[email protected]", status_code=204)
send_confirm_email.assert_called_once_with(UserEmail.objects.get(email="[email protected]"))
@mock.patch("sentry.models.User.send_confirm_email_singular")
def test_can_confirm_with_uppercase(self, send_confirm_email):
email = UserEmail.objects.create(email="[email protected]", is_verified=False, user=self.user)
email.save()
self.get_success_response(self.user.id, email="[email protected]", status_code=204)
send_confirm_email.assert_called_once_with(UserEmail.objects.get(email="[email protected]"))
@mock.patch("sentry.models.User.send_confirm_email_singular")
def test_cant_confirm_verified_email(self, send_confirm_email):
email = UserEmail.objects.create(email="[email protected]", is_verified=True, user=self.user)
email.save()
self.get_error_response(self.user.id, email="[email protected]", status_code=400)
assert send_confirm_email.call_count == 0
@mock.patch("sentry.models.User.send_confirm_email_singular")
def test_validate_email(self, send_confirm_email):
self.get_error_response(self.user.id, email="", status_code=400)
assert send_confirm_email.call_count == 0