30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from conftest import create_session, join_student
|
|
|
|
|
|
def test_session_metadata_join_me_and_stats(client, sample_pool):
|
|
sid = create_session(client, sample_pool)
|
|
metadata = client.get(f"/api/session/{sid}").json()
|
|
assert metadata["title"] == "Sample Quiz"
|
|
assert metadata["state"] == "lobby"
|
|
assert metadata["current_question_idx"] is None
|
|
|
|
join = join_student(client, sid, "s1", "First Name")
|
|
assert join["ok"] is True
|
|
assert "qz_student" in client.cookies
|
|
|
|
join_student(client, sid, "s1", "Updated Name")
|
|
me = client.get(f"/api/session/{sid}/me")
|
|
assert me.status_code == 200
|
|
assert me.json()["name"] == "Updated Name"
|
|
|
|
stats = client.get(f"/api/session/{sid}/stats").json()
|
|
assert stats["question_idx"] is None
|
|
assert stats["top5"][0]["name"] == "Updated Name"
|
|
|
|
|
|
def test_invalid_session_and_missing_cookie_paths(client):
|
|
assert client.get("/?sid=BAD").status_code == 200
|
|
assert "Ask your instructor" in client.get("/?sid=BAD").text
|
|
assert client.get("/api/session/BAD").status_code == 404
|
|
assert client.get("/api/session/BAD/me").status_code == 401
|