def test_value_voucher_checkout_discount_not_applicable(settings): voucher = Voucher(code='unique', type=VoucherType.VALUE, discount_value_type=DiscountValueType.FIXED, discount_value=10, limit=100) checkout = Mock(get_subtotal=Mock(return_value=Price(10, currency='USD'))) with pytest.raises(NotApplicable) as e: get_voucher_discount_for_checkout(voucher, checkout) assert e.value.limit == Price(100, currency='USD')
def test_value_voucher_checkout_discount_not_applicable(settings): voucher = Voucher( code='unique', type=VoucherType.VALUE, discount_value_type=DiscountValueType.FIXED, discount_value=10, limit=100) checkout = Mock(get_subtotal=Mock( return_value=Price(10, currency='USD'))) with pytest.raises(NotApplicable) as e: get_voucher_discount_for_checkout(voucher, checkout) assert e.value.limit == Price(100, currency='USD')
def test_value_voucher_checkout_discount_not_applicable(settings): voucher = Voucher(code='unique', type=VoucherType.VALUE, discount_value_type=DiscountValueType.FIXED, discount_value=10, limit=Money(100, 'USD')) subtotal = TaxedMoney(net=Money(10, 'USD'), gross=Money(10, 'USD')) checkout = Mock(get_subtotal=Mock(return_value=subtotal)) with pytest.raises(NotApplicable) as e: get_voucher_discount_for_checkout(voucher, checkout) assert e.value.limit == Money(100, 'USD')
def test_category_voucher_checkout_discount_not_applicable( settings, monkeypatch): monkeypatch.setattr( 'saleor.discount.utils.get_category_variants_and_prices', lambda cart, product: []) voucher = Voucher( code='unique', type=VoucherType.CATEGORY, discount_value_type=DiscountValueType.FIXED, discount_value=10) checkout = Mock(cart=Mock()) with pytest.raises(NotApplicable) as e: get_voucher_discount_for_checkout(voucher, checkout) assert str(e.value) == 'This offer is only valid for selected items.'
def test_category_voucher_checkout_discount_not_applicable(settings, monkeypatch): monkeypatch.setattr( 'saleor.discount.utils.get_category_variants_and_prices', lambda cart, product: []) voucher = Voucher( code='unique', type=VoucherType.CATEGORY, discount_value_type=DiscountValueType.FIXED, discount_value=10) checkout = Mock(cart=Mock()) with pytest.raises(NotApplicable) as e: get_voucher_discount_for_checkout(voucher, checkout) assert str(e.value) == 'This offer is only valid for selected items.'
def test_shipping_voucher_checkout_discount_not_applicable( settings, is_shipping_required, shipping_method, discount_value, discount_type, apply_to, limit, subtotal, error_msg): checkout = Mock(is_shipping_required=is_shipping_required, shipping_method=shipping_method, get_subtotal=Mock(return_value=subtotal)) voucher = Voucher( code='unique', type=VoucherType.SHIPPING, discount_value_type=discount_type, discount_value=discount_value, limit=Price(limit, currency='USD') if limit is not None else None, apply_to=apply_to) with pytest.raises(NotApplicable) as e: get_voucher_discount_for_checkout(voucher, checkout) assert str(e.value) == error_msg
def test_value_voucher_checkout_discount(settings, total, discount_value, discount_type, limit, expected_value): voucher = Voucher( code='unique', type=VoucherType.VALUE, discount_value_type=discount_type, discount_value=discount_value, limit=Price(limit, currency='USD') if limit is not None else None) checkout = Mock(get_subtotal=Mock(return_value=Price(total, currency='USD'))) discount = get_voucher_discount_for_checkout(voucher, checkout) assert discount.amount == Price(expected_value, currency='USD')
def test_value_voucher_checkout_discount(settings, total, discount_value, discount_type, limit, expected_value): voucher = Voucher(code='unique', type=VoucherType.VALUE, discount_value_type=discount_type, discount_value=discount_value, limit=Money(limit, 'USD') if limit is not None else None) subtotal = TaxedMoney(net=Money(total, 'USD'), gross=Money(total, 'USD')) checkout = Mock(get_subtotal=Mock(return_value=subtotal)) discount = get_voucher_discount_for_checkout(voucher, checkout) assert discount == Money(expected_value, 'USD')
def test_products_voucher_checkout_discount_not(settings, monkeypatch, prices, discount_value, discount_type, apply_to, expected_value): monkeypatch.setattr( 'saleor.discount.utils.get_product_variants_and_prices', lambda cart, product: ( (None, Price(p, currency='USD')) for p in prices)) voucher = Voucher( code='unique', type=VoucherType.PRODUCT, discount_value_type=discount_type, discount_value=discount_value, apply_to=apply_to) checkout = Mock(cart=Mock()) discount = get_voucher_discount_for_checkout(voucher, checkout) assert discount.amount == Price(expected_value, currency='USD')
def test_products_voucher_checkout_discount_not(settings, monkeypatch, prices, discount_value, discount_type, apply_to, expected_value): monkeypatch.setattr( 'saleor.discount.utils.get_product_variants_and_prices', lambda cart, product: ( (None, Price(p, currency='USD')) for p in prices)) voucher = Voucher(code='unique', type=VoucherType.PRODUCT, discount_value_type=discount_type, discount_value=discount_value, apply_to=apply_to) checkout = Mock(cart=Mock()) discount = get_voucher_discount_for_checkout(voucher, checkout) assert discount.amount == Price(expected_value, currency='USD')
def test_shipping_voucher_checkout_discount( settings, shipping_cost, shipping_country_code, discount_value, discount_type, apply_to, expected_value): checkout = Mock( get_subtotal=Mock(return_value=Price(100, currency='USD')), is_shipping_required=True, shipping_method=Mock( price=Price(shipping_cost, currency='USD'), country_code=shipping_country_code)) voucher = Voucher( code='unique', type=VoucherType.SHIPPING, discount_value_type=discount_type, discount_value=discount_value, apply_to=apply_to, limit=None) discount = get_voucher_discount_for_checkout(voucher, checkout) assert discount.amount == Price(expected_value, currency='USD')
def test_shipping_voucher_checkout_discount(settings, shipping_cost, shipping_country_code, discount_value, discount_type, apply_to, expected_value): subtotal = TaxedMoney(net=Money(100, 'USD'), gross=Money(100, 'USD')) shipping_total = TaxedMoney(net=Money(shipping_cost, 'USD'), gross=Money(shipping_cost, 'USD')) checkout = Mock(get_subtotal=Mock(return_value=subtotal), is_shipping_required=True, shipping_method=Mock( price=Money(shipping_cost, 'USD'), country_code=shipping_country_code, get_total_price=Mock(return_value=shipping_total))) voucher = Voucher(code='unique', type=VoucherType.SHIPPING, discount_value_type=discount_type, discount_value=discount_value, apply_to=apply_to, limit=None) discount = get_voucher_discount_for_checkout(voucher, checkout) assert discount == Money(expected_value, 'USD')