Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

test_results.py 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from decimal import Decimal as D
  2. from django.test import TestCase
  3. from oscar.apps.offer import models, results
  4. from oscar.test.factories import ConditionalOfferFactory, VoucherFactory
  5. class TestOfferApplicationsObject(TestCase):
  6. def setUp(self):
  7. self.applications = results.OfferApplications()
  8. self.offer = models.ConditionalOffer()
  9. def test_is_countable(self):
  10. self.assertEqual(0, len(self.applications))
  11. def test_can_filter_shipping_discounts(self):
  12. result = models.ShippingDiscount()
  13. self.applications.add(self.offer, result)
  14. self.assertEqual(1, len(self.applications.shipping_discounts))
  15. def test_can_filter_offer_discounts(self):
  16. result = models.BasketDiscount(D('2.00'))
  17. self.applications.add(self.offer, result)
  18. self.assertEqual(1, len(self.applications.offer_discounts))
  19. def test_can_filter_post_order_actions(self):
  20. result = models.PostOrderAction("Something will happen")
  21. self.applications.add(self.offer, result)
  22. self.assertEqual(1, len(self.applications.post_order_actions))
  23. def test_grouped_voucher_discounts(self):
  24. voucher = VoucherFactory()
  25. offer1 = ConditionalOfferFactory(name='offer1')
  26. offer1.set_voucher(voucher)
  27. result1 = models.BasketDiscount(D('2.00'))
  28. offer2 = ConditionalOfferFactory(name='offer2')
  29. offer2.set_voucher(voucher)
  30. result2 = models.BasketDiscount(D('1.00'))
  31. self.applications.add(offer1, result1)
  32. self.applications.add(offer2, result2)
  33. assert len(self.applications) == 2
  34. discounts = self.applications.grouped_voucher_discounts
  35. discounts = [x for x in discounts]
  36. assert len(discounts) == 1
  37. assert discounts[0]['voucher'] == voucher
  38. assert discounts[0]['discount'] == D('3.00')