Add functionality to create linked supervisor account when creating a user

This commit is contained in:
Ross
2026-06-15 11:32:21 +01:00
parent 1f0877964b
commit c52cf46d65
5 changed files with 144 additions and 49 deletions
+52
View File
@@ -280,5 +280,57 @@ def test_hide_exams_and_collections(client, create_users):
assert b"Test Physics Exam" in response_unhidden.content
@pytest.mark.django_db
def test_create_user_with_linked_supervisor(client, create_cid_manager, django_user_model):
from generic.models import Supervisor
client.force_login(create_cid_manager)
# 1. Create a user WITH create_supervisor checked
response = client.post(
reverse("create_user"),
{
"username": "newsupervisor@example.com",
"first_name": "New",
"last_name": "Supervisor",
"grade": "",
"create_supervisor": True,
},
)
assert response.status_code == 302
assert response.url == reverse("accounts_list")
# Verify user created
new_user = django_user_model.objects.get(username="newsupervisor@example.com")
assert new_user.first_name == "New"
assert new_user.last_name == "Supervisor"
# Verify linked supervisor created
supervisor = Supervisor.objects.get(email="newsupervisor@example.com")
assert supervisor.name == "New Supervisor"
assert supervisor.user == new_user
# 2. Create a user WITHOUT create_supervisor checked
response_no_sv = client.post(
reverse("create_user"),
{
"username": "regularuser@example.com",
"first_name": "Regular",
"last_name": "User",
"grade": "",
"create_supervisor": False,
},
)
assert response_no_sv.status_code == 302
# Verify user created
regular_user = django_user_model.objects.get(username="regularuser@example.com")
# Verify no supervisor was created
assert not Supervisor.objects.filter(email="regularuser@example.com").exists()