| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- from decimal import Decimal as D
 - 
 - from django.test import TestCase
 - 
 - from oscar.core import prices
 - from oscar.core.loading import get_class
 - from oscar.test import factories
 - from oscar.test.basket import add_product
 - 
 - SurchargeApplicator = get_class("checkout.applicator", "SurchargeApplicator")
 - PercentageCharge = get_class("checkout.surcharges", "PercentageCharge")
 - FlatCharge = get_class("checkout.surcharges", "FlatCharge")
 - 
 - 
 - class TestSurcharges(TestCase):
 -     def setUp(self):
 -         self.applicator = SurchargeApplicator()
 -         self.basket = factories.create_basket(empty=True)
 - 
 -     def test_stock_surcharges(self):
 -         add_product(self.basket, D('12.00'))
 -         surcharges = self.applicator.get_applicable_surcharges(self.basket)
 - 
 -         self.assertEqual(surcharges.total.excl_tax, D('20.0'))
 -         self.assertEqual(surcharges.total.incl_tax, D('22.0'))
 - 
 -     def test_percentage_surcharge(self):
 -         percentage_surcharge = PercentageCharge(percentage=D(10))
 -         add_product(self.basket, D(12))
 -         price = percentage_surcharge.calculate(self.basket)
 - 
 -         self.assertEqual(self.basket.total_incl_tax, D(12))
 -         self.assertEqual(price.incl_tax, D("1.20"))
 - 
 -     def test_percentage_empty_basket(self):
 -         percentage_surcharge = PercentageCharge(percentage=D(10))
 -         price = percentage_surcharge.calculate(self.basket)
 - 
 -         self.assertEqual(self.basket.total_incl_tax, D(0))
 -         self.assertEqual(price.incl_tax, D(0))
 - 
 -     def test_flat_surcharge(self):
 -         flat_surcharge = FlatCharge(excl_tax=D(1), incl_tax=D("1.21"))
 -         add_product(self.basket, D(12))
 -         price = flat_surcharge.calculate(self.basket)
 - 
 -         self.assertEqual(self.basket.total_incl_tax, D(12))
 -         self.assertEqual(price.incl_tax, D("1.21"))
 -         self.assertEqual(price.excl_tax, D(1))
 - 
 -     def test_percentage_with_shipping_charge(self):
 -         percentage_surcharge = PercentageCharge(percentage=D(4))
 -         add_product(self.basket, D(10))
 -         shipping_charge = prices.Price(
 -             currency=self.basket.currency,
 -             excl_tax=D('3.95'), tax=D('1.05'))
 -         price = percentage_surcharge.calculate(self.basket, shipping_charge=shipping_charge)
 - 
 -         self.assertEqual(self.basket.total_incl_tax, D(10))
 -         self.assertEqual(shipping_charge.incl_tax, D(5))
 -         self.assertEqual(price.incl_tax, D("0.6"))
 
 
  |