def METHOD_NAME(mocker, mock_ethereum_client, receipt):
    my_tx_hash = receipt['transactionHash']
    # Test that web3's TimeExhausted is propagated:
    web3_mock = mock_ethereum_client.w3
    web3_mock.eth.wait_for_transaction_receipt = mocker.Mock(side_effect=TimeExhausted)
    with pytest.raises(TimeExhausted):
        _ = mock_ethereum_client.wait_for_receipt(transaction_hash=my_tx_hash, timeout=1, confirmations=0)
    web3_mock.eth.wait_for_transaction_receipt.assert_called_once_with(transaction_hash=my_tx_hash,
                                                                       timeout=1,
                                                                       poll_latency=MockEthereumClient.TRANSACTION_POLLING_TIME)
    # Test that when web3's layer returns the receipt, we get that receipt
    web3_mock.eth.wait_for_transaction_receipt = mocker.Mock(return_value=receipt)
    returned_receipt = mock_ethereum_client.wait_for_receipt(transaction_hash=my_tx_hash, timeout=1, confirmations=0)
    assert receipt == returned_receipt
    web3_mock.eth.wait_for_transaction_receipt.assert_called_once_with(transaction_hash=my_tx_hash,
                                                                       timeout=1,
                                                                       poll_latency=MockEthereumClient.TRANSACTION_POLLING_TIME)