Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

customer_tests.py 1.8KB

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