示例#1
0
def test_checkout_shipping_address_update_with_not_applicable_voucher(
        user_api_client, cart_with_item, voucher_shipping_type,
        graphql_address_data, address_other_country, shipping_method):
    assert cart_with_item.shipping_address is None
    assert cart_with_item.voucher_code is None

    cart_with_item.shipping_address = address_other_country
    cart_with_item.shipping_method = shipping_method
    cart_with_item.save(update_fields=['shipping_address', 'shipping_method'])
    assert cart_with_item.shipping_address.country == \
        address_other_country.country

    voucher = voucher_shipping_type
    assert voucher.countries[0].code == address_other_country.country

    add_voucher_to_cart(voucher, cart_with_item)
    assert cart_with_item.voucher_code == voucher.code

    checkout_id = graphene.Node.to_global_id('Checkout', cart_with_item.pk)
    new_address = graphql_address_data
    variables = {'checkoutId': checkout_id, 'shippingAddress': new_address}
    response = user_api_client.post_graphql(
        MUTATION_CHECKOUT_SHIPPING_ADDRESS_UPDATE, variables)
    content = get_graphql_content(response)
    data = content['data']['checkoutShippingAddressUpdate']
    assert not data['errors']

    cart_with_item.refresh_from_db()
    cart_with_item.shipping_address.refresh_from_db()

    assert cart_with_item.shipping_address.country == new_address['country']
    assert cart_with_item.voucher_code is None
示例#2
0
def test_checkout_shipping_address_update_with_not_applicable_voucher(
        user_api_client, cart_with_item, voucher_shipping_type,
        graphql_address_data, address_other_country, shipping_method):
    assert cart_with_item.shipping_address is None
    assert cart_with_item.voucher_code is None

    cart_with_item.shipping_address = address_other_country
    cart_with_item.shipping_method = shipping_method
    cart_with_item.save(update_fields=['shipping_address', 'shipping_method'])
    assert cart_with_item.shipping_address.country == \
        address_other_country.country

    voucher = voucher_shipping_type
    assert voucher.countries[0].code == address_other_country.country

    add_voucher_to_cart(voucher, cart_with_item)
    assert cart_with_item.voucher_code == voucher.code

    checkout_id = graphene.Node.to_global_id('Checkout', cart_with_item.pk)
    new_address = graphql_address_data
    variables = {'checkoutId': checkout_id, 'shippingAddress': new_address}
    response = user_api_client.post_graphql(
        MUTATION_CHECKOUT_SHIPPING_ADDRESS_UPDATE, variables)
    content = get_graphql_content(response)
    data = content['data']['checkoutShippingAddressUpdate']
    assert not data['errors']

    cart_with_item.refresh_from_db()
    cart_with_item.shipping_address.refresh_from_db()

    assert cart_with_item.shipping_address.country == new_address['country']
    assert cart_with_item.voucher_code is None
示例#3
0
def test_add_voucher_to_cart_fail(
        cart_with_item, voucher_with_high_min_amount_spent):
    with pytest.raises(NotApplicable) as e:
        add_voucher_to_cart(
            voucher_with_high_min_amount_spent, cart_with_item)

    assert cart_with_item.voucher_code is None
示例#4
0
def test_checkout_lines_delete_with_not_applicable_voucher(
        user_api_client, cart_with_item, voucher):
    voucher.min_amount_spent = cart_with_item.get_subtotal().gross
    voucher.save(update_fields=['min_amount_spent'])

    add_voucher_to_cart(voucher, cart_with_item)
    assert cart_with_item.voucher_code == voucher.code

    line = cart_with_item.lines.first()

    checkout_id = graphene.Node.to_global_id('Checkout', cart_with_item.pk)
    line_id = graphene.Node.to_global_id('CheckoutLine', line.pk)
    variables = {'checkoutId': checkout_id, 'lineId': line_id}
    response = user_api_client.post_graphql(MUTATION_CHECKOUT_LINES_DELETE,
                                            variables)
    content = get_graphql_content(response)

    data = content['data']['checkoutLineDelete']
    assert not data['errors']
    cart_with_item.refresh_from_db()
    assert cart_with_item.lines.count() == 0
    assert cart_with_item.voucher_code is None
示例#5
0
def test_checkout_lines_delete_with_not_applicable_voucher(
        user_api_client, cart_with_item, voucher):
    voucher.min_amount_spent = cart_with_item.get_subtotal().gross
    voucher.save(update_fields=['min_amount_spent'])

    add_voucher_to_cart(voucher, cart_with_item)
    assert cart_with_item.voucher_code == voucher.code

    line = cart_with_item.lines.first()

    checkout_id = graphene.Node.to_global_id('Checkout', cart_with_item.pk)
    line_id = graphene.Node.to_global_id('CheckoutLine', line.pk)
    variables = {'checkoutId': checkout_id, 'lineId': line_id}
    response = user_api_client.post_graphql(
        MUTATION_CHECKOUT_LINES_DELETE, variables)
    content = get_graphql_content(response)

    data = content['data']['checkoutLineDelete']
    assert not data['errors']
    cart_with_item.refresh_from_db()
    assert cart_with_item.lines.count() == 0
    assert cart_with_item.voucher_code is None
示例#6
0
def test_add_voucher_to_cart_fail(cart_with_item,
                                  voucher_with_high_min_amount_spent):
    with pytest.raises(NotApplicable) as e:
        add_voucher_to_cart(voucher_with_high_min_amount_spent, cart_with_item)

    assert cart_with_item.voucher_code is None
示例#7
0
def test_add_voucher_to_cart(cart_with_item, voucher):
    assert cart_with_item.voucher_code is None
    add_voucher_to_cart(voucher, cart_with_item)

    assert cart_with_item.voucher_code == voucher.code
示例#8
0
def test_add_voucher_to_cart(cart_with_item, voucher):
    assert cart_with_item.voucher_code is None
    add_voucher_to_cart(voucher, cart_with_item)

    assert cart_with_item.voucher_code == voucher.code