Пример #1
0
    def test_multiple_usage_coupon(self):
        """Test that multiple-usage coupon is created and the usage number decreased on usage."""
        # Verify that the created voucher has two possible applications.
        voucher = self.coupon.attr.coupon_vouchers.vouchers.first()
        self.assertEqual(voucher.offers.first().get_max_applications(), 1)

        # Verify that the voucher now has been applied and usage number decreased.
        basket = self.apply_voucher(self.user, self.site, voucher)
        order = create_order(basket=basket, user=self.user)
        lines = order.lines.all()
        order, completed_lines = CouponFulfillmentModule().fulfill_product(order, lines)
        self.assertEqual(completed_lines[0].status, LINE.COMPLETE)
        self.assertEqual(len(basket.applied_offers()), 1)
        self.assertEqual(voucher.offers.first().get_max_applications(), 0)

        # Verify that the voucher with now 0 usage number wasn't applied to the basket.
        new_basket = self.apply_voucher(self.user, self.site, voucher)
        self.assertEqual(len(new_basket.applied_offers()), 0)
Пример #2
0
 def test_revoke_line(self):
     line = self.order.lines.first()
     with self.assertRaises(NotImplementedError):
         CouponFulfillmentModule().revoke_line(line)
Пример #3
0
 def test_fulfill_product(self):
     """Test fulfilling a Coupon product."""
     lines = self.order.lines.all()
     __, completed_lines = CouponFulfillmentModule().fulfill_product(
         self.order, lines)
     self.assertEqual(completed_lines[0].status, LINE.COMPLETE)
Пример #4
0
 def test_get_supported_lines(self):
     """Test that Coupon lines where returned."""
     lines = self.order.lines.all()
     supported_lines = CouponFulfillmentModule().get_supported_lines(lines)
     self.assertEqual(len(supported_lines), 1)
Пример #5
0
 def test_supports_line(self):
     """Test that a line containing Coupon returns True."""
     line = self.order.lines.first()
     supports_line = CouponFulfillmentModule().supports_line(line)
     self.assertTrue(supports_line)