| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import mock
- import datetime
-
- from django.test import TestCase
- from django.utils import timezone
-
- from oscar.core.loading import get_model
- from oscar.apps.offer import utils
- from oscar.test import factories
-
- Voucher = get_model('voucher', 'Voucher')
-
-
- class TestPriorityOffers(TestCase):
- def test_site_offers_are_ordered(self):
- factories.create_offer(name="A", priority=0)
- factories.create_offer(name="B", priority=7)
- factories.create_offer(name="C", priority=5)
- factories.create_offer(name="D", priority=7)
- factories.create_offer(name="E", priority=1)
-
- offers = utils.Applicator().get_site_offers()
- ordered_names = [offer.name for offer in offers]
- self.assertEqual(["B", "D", "C", "E", "A"], ordered_names)
-
- def test_basket_offers_are_ordered(self):
- voucher = Voucher.objects.create(
- name="Test voucher",
- code="test",
- start_datetime=timezone.now(),
- end_datetime=timezone.now() + datetime.timedelta(days=12))
-
- voucher.offers = [
- factories.create_offer(name="A", priority=0),
- factories.create_offer(name="B", priority=7),
- factories.create_offer(name="C", priority=5),
- factories.create_offer(name="D", priority=7),
- factories.create_offer(name="E", priority=1),
- ]
-
- basket = factories.create_basket()
- user = mock.Mock()
-
- # Apply voucher to basket
- basket.vouchers.add(voucher)
-
- offers = utils.Applicator().get_basket_offers(basket, user)
- ordered_names = [offer.name for offer in offers]
- self.assertEqual(["B", "D", "C", "E", "A"], ordered_names)
|