Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

customer_tests.py 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from django.test import TestCase
  2. from django.core import mail
  3. from oscar.core.compat import get_user_model
  4. from oscar.apps.customer.utils import Dispatcher
  5. from oscar.test.factories import create_order
  6. from oscar.apps.customer.models import CommunicationEventType
  7. User = get_user_model()
  8. class CommunicationTypeTest(TestCase):
  9. keys = ('body', 'html', 'sms', 'subject')
  10. def test_no_templates_returns_empty_string(self):
  11. et = CommunicationEventType()
  12. messages = et.get_messages()
  13. for key in self.keys:
  14. self.assertEqual('', messages[key])
  15. def test_field_template_render(self):
  16. et = CommunicationEventType(email_subject_template='Hello {{ name }}')
  17. ctx = {'name': 'world'}
  18. messages = et.get_messages(ctx)
  19. self.assertEqual('Hello world', messages['subject'])
  20. class TestDispatcher(TestCase):
  21. def test_sending_a_order_related_messages(self):
  22. email = 'testuser@example.com'
  23. user = User.objects.create_user('testuser', email,
  24. 'somesimplepassword')
  25. order_number = '12345'
  26. order = create_order(number=order_number, user=user)
  27. et = CommunicationEventType.objects.create(code="ORDER_PLACED",
  28. name="Order Placed",
  29. category="Order related")
  30. messages = et.get_messages({
  31. 'order': order,
  32. 'lines': order.lines.all()
  33. })
  34. self.assertIn(order_number, messages['body'])
  35. self.assertIn(order_number, messages['html'])
  36. dispatcher = Dispatcher()
  37. dispatcher.dispatch_order_messages(order, messages, et)
  38. self.assertEquals(len(mail.outbox), 1)
  39. message = mail.outbox[0]
  40. self.assertIn(order_number, message.body)