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))
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))
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))
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))
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.")