generated from bisco/codex-bootstrap
fix(dev): log confirmation links locally
This commit is contained in:
@@ -96,6 +96,34 @@ class BookingServiceTests(TestCase):
|
||||
self.assertEqual(len(callbacks), 1)
|
||||
self.assertEqual(len(mail.outbox), 0)
|
||||
|
||||
@override_settings(
|
||||
EMAIL_BACKEND="django.core.mail.backends.locmem.EmailBackend",
|
||||
LOG_RESERVATION_CONFIRMATION_URLS=True,
|
||||
SITE_BASE_URL="https://tickets.azionelab.example",
|
||||
)
|
||||
def test_create_pending_reservation_logs_confirmation_link_in_local_mode(self):
|
||||
with self.assertLogs("bookings.emailing", level="INFO") as captured_logs:
|
||||
with self.captureOnCommitCallbacks(execute=True):
|
||||
result = create_pending_reservation(
|
||||
performance_id=self.performance.id,
|
||||
name="Maria Rossi",
|
||||
email="maria@example.com",
|
||||
party_size=1,
|
||||
)
|
||||
|
||||
self.assertEqual(result.reservation.status, Reservation.Status.PENDING)
|
||||
self.assertTrue(
|
||||
any(
|
||||
(
|
||||
"Local reservation confirmation link for manual testing "
|
||||
"(email send attempt)"
|
||||
) in log_entry
|
||||
and result.raw_confirmation_token in log_entry
|
||||
for log_entry in captured_logs.output
|
||||
)
|
||||
)
|
||||
|
||||
@override_settings(LOG_RESERVATION_CONFIRMATION_URLS=False)
|
||||
@patch("bookings.emailing.send_mail", side_effect=RuntimeError("SMTP down"))
|
||||
def test_create_pending_reservation_logs_email_failure_without_crashing(self, mocked_send_mail):
|
||||
with self.assertLogs("bookings.emailing", level="ERROR") as captured_logs:
|
||||
@@ -116,6 +144,40 @@ class BookingServiceTests(TestCase):
|
||||
for log_entry in captured_logs.output
|
||||
)
|
||||
)
|
||||
self.assertFalse(
|
||||
any(result.raw_confirmation_token in log_entry for log_entry in captured_logs.output)
|
||||
)
|
||||
|
||||
@override_settings(
|
||||
LOG_RESERVATION_CONFIRMATION_URLS=True,
|
||||
SITE_BASE_URL="https://tickets.azionelab.example",
|
||||
)
|
||||
@patch("bookings.emailing.send_mail", side_effect=RuntimeError("SMTP down"))
|
||||
def test_create_pending_reservation_logs_confirmation_link_on_email_failure_in_local_mode(
|
||||
self,
|
||||
mocked_send_mail,
|
||||
):
|
||||
with self.assertLogs("bookings.emailing", level="INFO") as captured_logs:
|
||||
with self.captureOnCommitCallbacks(execute=True):
|
||||
result = create_pending_reservation(
|
||||
performance_id=self.performance.id,
|
||||
name="Maria Rossi",
|
||||
email="maria@example.com",
|
||||
party_size=1,
|
||||
)
|
||||
|
||||
self.assertEqual(result.reservation.status, Reservation.Status.PENDING)
|
||||
mocked_send_mail.assert_called_once()
|
||||
self.assertTrue(
|
||||
any(
|
||||
(
|
||||
"Local reservation confirmation link for manual testing "
|
||||
"(email send failure fallback)"
|
||||
) in log_entry
|
||||
and result.raw_confirmation_token in log_entry
|
||||
for log_entry in captured_logs.output
|
||||
)
|
||||
)
|
||||
|
||||
def test_generate_confirmation_token_returns_raw_token_once(self):
|
||||
reservation = self.create_reservation()
|
||||
|
||||
Reference in New Issue
Block a user