Beispiel #1
0
    def test_respects_effective_price_when_taxes_are_known(self):
        # Assign UK style strategy (20% tax)
        self.basket.strategy = strategy.UK()

        # Add sufficient products to meet condition
        add_product(self.basket, price=D('6'), quantity=2)

        # Ensure discount is calculated against tax-inclusive price
        result = self.offer.apply_benefit(self.basket)
        self.assertEqual(2 * D('6.00') * D('1.2') * D('0.20'), result.discount)
    def test_respects_effective_price_when_taxes_are_known_and_offer_is_tax_inclusive(self):
        self.basket.strategy = strategy.UK()
        add_product(self.basket, price=D('10'), quantity=2)

        result = self.offer.apply_benefit(self.basket)
        self.assertEqual(2 * D('10.00') * D('1.2') * D('0.20'), result.discount)
        order = create_order(basket=self.basket)

        self.assertEqual(order.total_before_discounts_incl_tax, D('24'))
        self.assertEqual(order.total_before_discounts_excl_tax, D('20'))

        self.assertEqual(order.total_discount_excl_tax, D('4'))
        self.assertEqual(order.total_discount_incl_tax, D('4.8'))
    def test_respects_effective_price_when_taxes_are_known(self):
        # Assign UK style strategy (20% tax)
        self.basket.strategy = strategy.UK()

        # Add sufficient products to meet condition
        add_product(self.basket, price=D('10'), quantity=2)

        # Ensure discount is calculated against tax-inclusive price
        result = self.offer.apply_benefit(self.basket)
        self.assertEqual(2 * D('10.00') * D('1.2') * D('0.20'), result.discount)
        order = create_order(basket=self.basket)
        self.assertEqual(order.basket_total_before_discounts_excl_tax, D('20'))
        self.assertEqual(order.basket_total_before_discounts_incl_tax, D('24'))

        self.assertEqual(order.total_before_discounts_incl_tax, D('24'))
        self.assertEqual(order.total_before_discounts_excl_tax, D('20'))

        self.assertEqual(order.total_discount_excl_tax, D('4.8'))
        self.assertEqual(order.total_discount_incl_tax, D('5.76'))
Beispiel #4
0
 def test_pricing_policy_unavailable_if_no_price_excl_tax(self):
     product = factories.ProductFactory(stockrecords=[])
     factories.StockRecordFactory(price_excl_tax=None, product=product)
     info = strategy.UK().fetch_for_product(product)
     self.assertFalse(info.price.exists)
Beispiel #5
0
 def setUp(self):
     self.strategy = strategy.UK()