Python - assert that a mock function was called with certain arguments

Python tip:

You can assert that the method on a MagicMock object was called with certain arguments.

For example, you can mock an email service and assert that the send method was called with specific values:

from unittest.mock import MagicMock

def place_order(user, items, email_service):
    print(f"Place order for user {user}")
    print(f"With items: {items}")
    email_service.send(user, "Order placed.")

def test_place_order():
    email_service = MagicMock()

    place_order("[email protected]", ["Computer", "USB drive", "Vodka"], email_service)
    email_service.send.assert_called_with("[email protected]", "Order placed.")