|
| 1 | +from unittest.mock import MagicMock |
| 2 | + |
1 | 3 | from django.contrib.auth.signals import user_logged_in |
2 | 4 | from django.core import mail |
3 | 5 | from django.test import RequestFactory, TestCase, override_settings |
@@ -51,3 +53,28 @@ def test_no_email_when_request_is_none(self): |
51 | 53 | def test_email_body_contains_login_time(self): |
52 | 54 | self._fire_signal() |
53 | 55 | self.assertTrue(any("Login time" in part for part in [mail.outbox[0].body])) |
| 56 | + |
| 57 | + def _fire_signal_with_view_name(self, view_name): |
| 58 | + request = self.factory.get("/") |
| 59 | + request.resolver_match = MagicMock(view_name=view_name) |
| 60 | + self._fire_signal(request=request) |
| 61 | + |
| 62 | + def test_no_email_on_hijack_acquire(self): |
| 63 | + self._fire_signal_with_view_name("hijack:acquire") |
| 64 | + self.assertEqual(len(mail.outbox), 0) |
| 65 | + |
| 66 | + def test_no_email_on_hijack_release(self): |
| 67 | + self._fire_signal_with_view_name("hijack:release") |
| 68 | + self.assertEqual(len(mail.outbox), 0) |
| 69 | + |
| 70 | + def test_no_email_on_hijack_become(self): |
| 71 | + self._fire_signal_with_view_name("hijack-become") |
| 72 | + self.assertEqual(len(mail.outbox), 0) |
| 73 | + |
| 74 | + def test_no_email_on_users_hijack_view(self): |
| 75 | + self._fire_signal_with_view_name("users:hijack") |
| 76 | + self.assertEqual(len(mail.outbox), 0) |
| 77 | + |
| 78 | + def test_email_sent_for_non_hijack_view(self): |
| 79 | + self._fire_signal_with_view_name("account_login") |
| 80 | + self.assertEqual(len(mail.outbox), 1) |
0 commit comments