| 12345678910111213141516171819202122232425262728293031323334353637 |
- from http import client as http_client
-
- from django.urls import reverse
-
- from oscar.core.loading import get_class, get_model
- from oscar.test.factories import UserFactory
- from oscar.test.testcases import WebTestCase
-
- Dispatcher = get_class('communication.utils', 'Dispatcher')
- Notification = get_model('communication', 'Notification')
-
-
- class TestAUserWithUnreadNotifications(WebTestCase):
-
- def setUp(self):
- self.user = UserFactory()
- Dispatcher().notify_user(self.user, "Test message")
-
- def test_can_see_them_in_page_header(self):
- homepage = self.app.get('/', user=self.user)
- if homepage.status_code == 302:
- homepage = homepage.follow()
- self.assertEqual(1, homepage.context['num_unread_notifications'])
-
- def test_notification_list_view_shows_user_notifications(self):
- response = self.app.get(reverse('customer:notifications-inbox'), user=self.user)
- self.assertEqual(1, len(response.context['notifications']))
- self.assertEqual(False, response.context['notifications'][0].is_read)
-
- def test_notification_marked_as_read(self):
- n = Notification.objects.first()
- path = reverse('customer:notifications-detail', kwargs={'pk': n.id})
- response = self.app.get(path, user=self.user)
- # notification should be marked as read
- self.assertEqual(http_client.OK, response.status_code)
- n.refresh_from_db()
- self.assertTrue(n.is_read)
|