Complete worked example
python
from bootstrap_lab import django_setup
django_setup(__name__)
from django.contrib.auth import get_user_model
from django.contrib.auth.decorators import login_required
from django.http import JsonResponse
from django.test import Client
from django.urls import path
@login_required
def private(request):
return JsonResponse({"user": request.user.username})
urlpatterns = [path("private/", private)]
def authenticate_request(password):
User = get_user_model()
User.objects.all().delete()
user = User.objects.create_user(username="owner", password="course-password")
client = Client()
accepted = client.login(username="owner", password=password)
response = client.get("/private/")
return {"accepted": accepted, "status": response.status_code}- Reasoning
- The helper creates a user through the normal password-hashing API, calls the real test-client login path and requests a login-protected view. Correct credentials produce an authenticated session and success.