Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

notification_tests.py 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from django.test import TestCase
  2. from oscar.apps.customer.models import Notification
  3. from oscar.apps.customer.notifications import services
  4. from oscar.core.compat import get_user_model
  5. from oscar.test.factories import UserFactory
  6. User = get_user_model()
  7. class TestANewNotification(TestCase):
  8. def setUp(self):
  9. self.notification = Notification(
  10. recipient=UserFactory(),
  11. subject="Hello")
  12. def test_is_in_a_users_inbox(self):
  13. self.assertEqual(Notification.INBOX, self.notification.location)
  14. def test_is_not_read(self):
  15. self.assertFalse(self.notification.is_read)
  16. class TestANotification(TestCase):
  17. def setUp(self):
  18. self.notification = Notification.objects.create(
  19. recipient=UserFactory(),
  20. subject="Hello")
  21. def test_can_be_archived(self):
  22. self.notification.archive()
  23. self.assertEqual(Notification.ARCHIVE, self.notification.location)
  24. class TestAServiceExistsTo(TestCase):
  25. def test_notify_a_single_user(self):
  26. user = UserFactory()
  27. services.notify_user(user, "Hello you!")
  28. self.assertEqual(1, Notification.objects.filter(
  29. recipient=user).count())
  30. def test_notify_a_set_of_users(self):
  31. users = [UserFactory() for i in range(3)]
  32. services.notify_users(User.objects.all(), "Hello everybody!")
  33. for user in users:
  34. self.assertEqual(1, Notification.objects.filter(
  35. recipient=user).count())