Performance: Mocking external services
This concept affects page load speed and interaction responsiveness by avoiding real network calls during testing or development.
Jump into concepts and practice - no test required
from unittest.mock import patch @patch('requests.get') def test_get_data(mock_get): mock_get.return_value.json.return_value = {'key': 'value'} data = get_data() assert data['key'] == 'value'
import requests def get_data(): response = requests.get('https://api.example.com/data') return response.json()
| Pattern | Network Calls | Test Speed | Interaction Delay | Verdict |
|---|---|---|---|---|
| Real external service calls | Multiple real HTTP requests | Slow due to network latency | High delay causing slow INP | [X] Bad |
| Mocked external service calls | No real HTTP requests | Fast with instant responses | Minimal delay, fast INP | [OK] Good |
from unittest.mock import patch
def get_data():
return external_service_call()
@patch('myapp.services.external_service_call')
def test_get_data(mock_call):
mock_call.return_value = {'status': 'ok'}
result = get_data()
print(result)from unittest.mock import patch
def test_api_call():
with patch('myapp.services.external_api_call') as mock_call:
mock_call.return_value = {'success': True}
result = external_api_call()
print(result)from unittest.mock import patch
from django.test import Client
@patch('payments.api.call_payment')
def test_payment_failure(mock_call):
mock_call.return_value = {'status': 'error', 'code': 500}
client = Client()
response = client.post('/pay/')
print(response.status_code)
What should you add to the test to check the view's behavior?