def prepare_voucher(code='COUPONTEST', _range=None, start_datetime=None, end_datetime=None, benefit_value=100, benefit_type=Benefit.PERCENTAGE, usage=Voucher.SINGLE_USE, max_usage=None, email_domains=None, enterprise_customer=None, site=None): """ Helper function to create a voucher and add an offer to it that contains a product. """ # NOTE (CCB): We use empty categories here to avoid unique-constraint issues that occur when we use # ProductCategoryFactory in conjunction with pre-created Category objects. if _range is None: product = ProductFactory(categories=[]) _range = RangeFactory(products=[product], enterprise_customer=enterprise_customer) elif _range.num_products() > 0: product = _range.all_products()[0] else: product = ProductFactory(categories=[]) if start_datetime is None: start_datetime = now() - timedelta(days=1) if end_datetime is None: end_datetime = now() + timedelta(days=10) voucher = VoucherFactory(code=code, start_datetime=start_datetime, end_datetime=end_datetime, usage=usage) benefit = BenefitFactory(type=benefit_type, range=_range, value=benefit_value) condition = ConditionFactory(value=1, range=_range, enterprise_customer_uuid=enterprise_customer) if max_usage: offer = ConditionalOfferFactory(offer_type=ConditionalOffer.VOUCHER, benefit=benefit, condition=condition, max_global_applications=max_usage, email_domains=email_domains, priority=OFFER_PRIORITY_VOUCHER) else: offer = ConditionalOfferFactory( offer_type=ConditionalOffer.VOUCHER, benefit=benefit, condition=condition, email_domains=email_domains, partner=site.siteconfiguration.partner if site else None, priority=OFFER_PRIORITY_VOUCHER) voucher.offers.add(offer) return voucher, product
def prepare_voucher(self, range_=None, start_datetime=None, benefit_value=100): """ Create a voucher and add an offer to it that contains a created product. """ if range_ is None: product = ProductFactory(title='Test product') range_ = RangeFactory(products=[product, ]) else: product = range_.all_products()[0] if start_datetime is None: start_datetime = now() - datetime.timedelta(days=1) voucher = VoucherFactory(code='COUPONTEST', start_datetime=start_datetime, usage=Voucher.SINGLE_USE) benefit = BenefitFactory(range=range_, value=benefit_value) offer = ConditionalOfferFactory(benefit=benefit) voucher.offers.add(offer) return voucher, product
def prepare_voucher(self, range_=None, start_datetime=None, benefit_value=100, benefit_type='Percentage'): """ Create a voucher and add an offer to it that contains a created product. """ if range_ is None: product = ProductFactory(title='Test product') range_ = RangeFactory(products=[product, ]) else: product = range_.all_products()[0] if start_datetime is None: start_datetime = now() - datetime.timedelta(days=1) voucher = VoucherFactory(code='COUPONTEST', start_datetime=start_datetime, usage=Voucher.SINGLE_USE) benefit = BenefitFactory(type=benefit_type, range=range_, value=benefit_value) offer = ConditionalOfferFactory(benefit=benefit) voucher.offers.add(offer) return voucher, product