Files
old-riskletpy/backend/accounts/tests/test_views.py

35 lines
1.5 KiB
Python

import uuid
from django.test import TestCase
from django.urls import reverse
from unittest.mock import patch
from backend.accounts.models import EmailConfirmation
from backend.accounts.utils import send_confirmation_email
from django.utils.timezone import now, timedelta
class EmailConfirmationTests(TestCase):
def setUp(self):
"""Set up test data."""
self.valid_email = "test@example.com"
self.confirmation = EmailConfirmation.objects.create(
email=self.valid_email,
uuid=uuid.uuid4(),
created_at=now()
)
@patch("backend.accounts.views.create_document_for_organization.delay")
def test_confirm_email_valid(self, mock_task):
"""Test valid email confirmation."""
response = self.client.get(reverse("confirm_email", args=[self.confirmation.uuid]))
self.assertTemplateUsed(response, "accounts/confirmation_success.html")
self.assertContains(response, self.valid_email)
mock_task.assert_called_once_with(self.valid_email)
@patch("backend.accounts.views.send_confirmation_email")
def test_resend_confirmation(self, mock_send):
"""Test resending confirmation email."""
response = self.client.post(reverse("resend_confirmation", args=[self.valid_email]))
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content.decode(), "Confirmation email resent")
mock_send.assert_called_once_with(self.valid_email)