Exemplo n.º 1
0
 def test_apply_voucher_on_basket_and_check_discount_with_valid_voucher(self):
     """
     Tests apply_voucher_on_basket_and_check_discount when called with valid voucher
     applies voucher and returns the correct values.
     """
     basket = BasketFactory(owner=self.request.user, site=self.request.site)
     voucher, product = prepare_voucher()
     basket.add_product(product, 1)
     applied, msg = apply_voucher_on_basket_and_check_discount(voucher, self.request, basket)
     self.assertEqual(applied, True)
     self.assertIsNotNone(basket.applied_offers())
     self.assertEqual(msg, "Coupon code '{code}' added to basket.".format(code=voucher.code))
Exemplo n.º 2
0
 def test_apply_voucher_on_basket_and_check_discount_with_invalid_product(self):
     """
     Tests apply_voucher_on_basket_and_check_discount when called with invalid product
     does not apply voucher and returns the correct values.
     """
     basket = BasketFactory(owner=self.request.user, site=self.request.site)
     product = ProductFactory(stockrecords__partner__short_code='test1', stockrecords__price_excl_tax=0)
     voucher, __ = prepare_voucher(_range=RangeFactory(products=[product]))
     basket.add_product(product, 1)
     applied, msg = apply_voucher_on_basket_and_check_discount(voucher, self.request, basket)
     self.assertEqual(applied, False)
     self.assertEqual(basket.applied_offers(), {})
     self.assertEqual(msg, 'Basket does not qualify for coupon code {code}.'.format(code=voucher.code))
Exemplo n.º 3
0
    def test_prepare_basket_applies_existing_basket_valid_voucher(self):
        """
        Tests that prepare_basket applies an existing basket voucher that is valid
        for multiple products when used to purchase any of those products.
        """
        product = ProductFactory(stockrecords__partner__short_code='test1', stockrecords__price_excl_tax=100)

        new_range = RangeFactory(products=[product])
        voucher, __ = prepare_voucher(_range=new_range, benefit_value=10)

        basket = BasketFactory(owner=self.request.user, site=self.request.site)
        basket.vouchers.add(voucher)
        self.assertEqual(basket.vouchers.count(), 1)

        basket = prepare_basket(self.request, [product])
        self.assertIsNotNone(basket)
        self.assertEqual(basket.vouchers.count(), 1)
        self.assertEqual(basket.lines.first().product, product)
        self.assertIsNotNone(basket.applied_offers())
        self.assertEqual(basket.total_discount, 10.00)