Esempio n. 1
0
def test_handle_fully_paid_order_no_email(mock_send_payment_confirmation, order):
    order.user = None
    order.user_email = ""

    handle_fully_paid_order(order)
    event = order.events.get()
    assert event.type == OrderEvents.ORDER_FULLY_PAID
    assert not mock_send_payment_confirmation.called
Esempio n. 2
0
def test_handle_fully_paid_order_no_email(mock_send_payment_confirmation, order):
    order.user = None
    order.user_email = ""

    handle_fully_paid_order(order)
    event = order.events.get()
    assert event.type == OrderEvents.ORDER_FULLY_PAID
    assert not mock_send_payment_confirmation.called
Esempio n. 3
0
def test_handle_fully_paid_order_digital_lines(
    mock_send_payment_confirmation,
    mock_send_fulfillment_confirmation,
    order,
    digital_content,
    variant,
    site_settings,
):
    site_settings.automatic_fulfillment_digital_products = True
    site_settings.save()

    variant.digital_content = digital_content
    variant.digital_content.save()

    product_type = variant.product.product_type
    product_type.is_shipping_required = False
    product_type.is_digital = True
    product_type.save()

    net = variant.get_price()
    gross = Money(amount=net.amount * Decimal(1.23), currency=net.currency)
    order.lines.create(
        product_name=str(variant.product),
        variant_name=str(variant),
        product_sku=variant.sku,
        is_shipping_required=variant.is_shipping_required(),
        quantity=3,
        variant=variant,
        unit_price=TaxedMoney(net=net, gross=gross),
        tax_rate=23,
    )

    handle_fully_paid_order(order)

    fulfillment = order.fulfillments.first()

    event_order_paid, event_email_sent, event_order_fulfilled, event_digital_links = (
        order.events.all())
    assert event_order_paid.type == OrderEvents.ORDER_FULLY_PAID

    assert event_email_sent.type == OrderEvents.EMAIL_SENT
    assert event_order_fulfilled.type == OrderEvents.EMAIL_SENT
    assert event_digital_links.type == OrderEvents.EMAIL_SENT

    assert (event_order_fulfilled.parameters["email_type"] ==
            OrderEventsEmails.FULFILLMENT)
    assert (event_digital_links.parameters["email_type"] ==
            OrderEventsEmails.DIGITAL_LINKS)

    mock_send_payment_confirmation.assert_called_once_with(order.pk)
    mock_send_fulfillment_confirmation.assert_called_once_with(
        order.pk, fulfillment.pk)

    order.refresh_from_db()
    assert order.status == OrderStatus.FULFILLED
Esempio n. 4
0
def test_handle_fully_paid_order(mock_send_payment_confirmation, order):
    handle_fully_paid_order(order)
    event_order_paid, event_email_sent = order.events.all()
    assert event_order_paid.type == OrderEvents.ORDER_FULLY_PAID.value

    assert event_email_sent.type == OrderEvents.EMAIL_SENT.value
    assert event_email_sent.parameters == {
        'email': order.get_user_current_email(),
        'email_type': OrderEventsEmails.PAYMENT.value}

    mock_send_payment_confirmation.assert_called_once_with(order.pk)
Esempio n. 5
0
def test_handle_fully_paid_order(mock_send_payment_confirmation, order):
    handle_fully_paid_order(order)
    event_order_paid, event_email_sent = order.events.all()
    assert event_order_paid.type == OrderEvents.ORDER_FULLY_PAID.value

    assert event_email_sent.type == OrderEvents.EMAIL_SENT.value
    assert event_email_sent.parameters == {
        'email': order.get_user_current_email(),
        'email_type': OrderEventsEmails.PAYMENT.value}

    mock_send_payment_confirmation.assert_called_once_with(order.pk)
Esempio n. 6
0
def test_handle_fully_paid_order(mock_send_payment_confirmation, order):
    handle_fully_paid_order(order)
    event_order_paid, event_email_sent = order.events.all()
    assert event_order_paid.type == OrderEvents.ORDER_FULLY_PAID

    assert event_email_sent.type == OrderEvents.EMAIL_SENT
    assert event_email_sent.parameters == {
        "email": order.get_customer_email(),
        "email_type": OrderEventsEmails.PAYMENT,
    }

    mock_send_payment_confirmation.assert_called_once_with(order.pk)