예제 #1
0
 def test_add_multiple_products_and_use_voucher(self, usage):
     """ Verify the basket accepts multiple products and a single use voucher. """
     products = ProductFactory.create_batch(
         3, stockrecords__partner=self.partner)
     voucher = factories.VoucherFactory(usage=usage)
     product_range = factories.RangeFactory(products=products)
     voucher.offers.add(
         factories.ConditionalOfferFactory(
             benefit=factories.BenefitFactory(range=product_range),
             condition=factories.ConditionFactory(range=product_range)))
     qs = urllib.urlencode(
         {
             'sku': [
                 product.stockrecords.first().partner_sku
                 for product in products
             ],
             'code':
             voucher.code
         }, True)
     url = '{root}?{qs}'.format(root=self.path, qs=qs)
     response = self.client.get(url)
     self.assertEqual(response.status_code, 303)
     basket = response.wsgi_request.basket
     self.assertEqual(basket.status, Basket.OPEN)
     self.assertTrue(basket.contains_voucher(voucher.code))
예제 #2
0
 def test_voucher_already_in_basket_error_msg(self):
     """ Verify correct error message is returned when voucher already in basket. """
     voucher = factories.VoucherFactory(code=COUPON_CODE)
     self.basket.vouchers.add(voucher)
     self.assert_form_valid_message(
         "You have already added coupon code '{code}' to your basket.".
         format(code=COUPON_CODE))
예제 #3
0
 def test_inactive_voucher(self):
     """ Verify the view alerts the user if the voucher is inactive. """
     code = FuzzyText().fuzz()
     start_datetime = datetime.datetime.now() + datetime.timedelta(days=1)
     end_datetime = start_datetime + datetime.timedelta(days=2)
     voucher = factories.VoucherFactory(code=code, start_datetime=start_datetime, end_datetime=end_datetime)
     self.form.cleaned_data = {'code': voucher.code}
     self.assert_form_valid_message("Coupon code '{code}' is not active.".format(code=voucher.code))
예제 #4
0
 def test_voucher_expired_error_msg(self):
     """ Verify correct error message is returned when voucher has expired. """
     end_datetime = datetime.datetime.now() - datetime.timedelta(days=1)
     start_datetime = datetime.datetime.now() - datetime.timedelta(days=2)
     factories.VoucherFactory(code=COUPON_CODE,
                              end_datetime=end_datetime,
                              start_datetime=start_datetime)
     self.assert_form_valid_message(
         "Coupon code '{code}' has expired.".format(code=COUPON_CODE))
예제 #5
0
 def test_voucher_has_no_discount_error_msg(self):
     """ Verify correct error message is returned when voucher has no discount. """
     factories.VoucherFactory(code=COUPON_CODE)
     self.assert_form_valid_message("Your basket does not qualify for a coupon code discount.")