|
1 | 1 | from unittest import mock
|
2 | 2 | from unittest.mock import MagicMock, patch
|
3 | 3 |
|
4 |
| -from django.test import TestCase |
5 | 4 | from django.test.client import RequestFactory
|
6 | 5 | from django.utils import timezone
|
7 | 6 | from django.utils.translation import gettext as _
|
|
10 | 9 | from appointment.models import AppointmentRescheduleHistory
|
11 | 10 | from appointment.tests.base.base_test import BaseTest
|
12 | 11 | from appointment.utils.email_ops import (
|
13 |
| - get_thank_you_message, notify_admin_about_appointment, send_reschedule_confirmation_email, send_thank_you_email, |
| 12 | + get_thank_you_message, notify_admin_about_appointment, send_reschedule_confirmation_email, |
| 13 | + send_reset_link_to_staff_member, send_thank_you_email, |
14 | 14 | send_verification_email
|
15 | 15 | )
|
16 | 16 |
|
17 | 17 |
|
18 |
| -class GetThankYouMessageTests(TestCase): |
| 18 | +class SendResetLinkToStaffMemberTests(BaseTest): |
| 19 | + |
| 20 | + def setUp(self): |
| 21 | + super().setUp() |
| 22 | + self.user = self.user1 |
| 23 | + self.user.is_staff = True |
| 24 | + self.user.save() |
| 25 | + self.factory = RequestFactory() |
| 26 | + self.request = self.factory.get('/') |
| 27 | + |
| 28 | + |
| 29 | + @mock.patch('appointment.utils.email_ops.send_email') |
| 30 | + @mock.patch('appointment.models.PasswordResetToken.create_token') |
| 31 | + def test_send_reset_link(self, mock_create_token, mock_send_email): |
| 32 | + # Setup the token |
| 33 | + mock_token = mock.Mock() |
| 34 | + mock_token.token = 'token123' |
| 35 | + mock_create_token.return_value = mock_token |
| 36 | + |
| 37 | + # Assume get_absolute_url_ and get_website_name are utility functions you've defined somewhere |
| 38 | + with mock.patch('appointment.utils.email_ops.get_absolute_url_') as mock_get_absolute_url: |
| 39 | + with mock.patch('appointment.utils.email_ops.get_website_name') as mock_get_website_name: |
| 40 | + mock_get_absolute_url.return_value = 'http://testserver/reset_password' |
| 41 | + mock_get_website_name.return_value = 'TestCompany' |
| 42 | + |
| 43 | + send_reset_link_to_staff_member(self.user, self.request, self.email) |
| 44 | + |
| 45 | + # Check send_email was called with correct parameters |
| 46 | + mock_send_email.assert_called_once() |
| 47 | + args, kwargs = mock_send_email.call_args |
| 48 | + self.assertEqual(kwargs['recipient_list'], [self.email]) |
| 49 | + self.assertIn('TestCompany', kwargs['message']) |
| 50 | + self.assertIn('http://testserver/reset_password', kwargs['message']) |
| 51 | + |
| 52 | + |
| 53 | +class GetThankYouMessageTests(BaseTest): |
19 | 54 | def test_thank_you_no_payment(self):
|
20 | 55 | with patch('appointment.utils.email_ops.APPOINTMENT_PAYMENT_URL', None):
|
21 | 56 | ar = MagicMock()
|
|
0 commit comments