Add functionality to create linked supervisor account when creating a user
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user