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

priority_offers_tests.py 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import datetime
  2. from django.test import TestCase
  3. from django.db.models import get_model
  4. import mock
  5. from oscar.apps.offer import utils
  6. from oscar.test import factories
  7. Voucher = get_model('voucher', 'Voucher')
  8. class TestPriorityOffers(TestCase):
  9. def test_site_offers_are_ordered(self):
  10. factories.create_offer(name="A", priority=0)
  11. factories.create_offer(name="B", priority=7)
  12. factories.create_offer(name="C", priority=5)
  13. factories.create_offer(name="D", priority=7)
  14. factories.create_offer(name="E", priority=1)
  15. offers = utils.Applicator().get_site_offers()
  16. ordered_names = [offer.name for offer in offers]
  17. self.assertEqual(["B", "D", "C", "E", "A"], ordered_names)
  18. def test_basket_offers_are_ordered(self):
  19. voucher = Voucher.objects.create(
  20. name="Test voucher",
  21. code="test",
  22. start_date=datetime.date.today(),
  23. end_date=datetime.date.today() + datetime.timedelta(days=12))
  24. voucher.offers = [
  25. factories.create_offer(name="A", priority=0),
  26. factories.create_offer(name="B", priority=7),
  27. factories.create_offer(name="C", priority=5),
  28. factories.create_offer(name="D", priority=7),
  29. factories.create_offer(name="E", priority=1),
  30. ]
  31. basket = factories.create_basket()
  32. user = mock.Mock()
  33. # Apply voucher to basket
  34. basket.vouchers.add(voucher)
  35. offers = utils.Applicator().get_basket_offers(basket, user)
  36. ordered_names = [offer.name for offer in offers]
  37. self.assertEqual(["B", "D", "C", "E", "A"], ordered_names)