def test_handle_fully_paid_order_digital_lines( mock_send_payment_confirmation, mock_send_fulfillment_confirmation, order_with_digital_line, ): order = order_with_digital_line 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
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
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)