87 lines
2.6 KiB
Python
87 lines
2.6 KiB
Python
import json
|
|
|
|
TEST_NAME = "lessons:create"
|
|
|
|
|
|
def run(context) -> None:
|
|
path = f"/api/classes/{context.class_id}/lessons"
|
|
payload_primary = {
|
|
"дата": "2025-09-01",
|
|
"название": "Алгебра",
|
|
"домашнее задание": "Упражнения 1-3",
|
|
}
|
|
|
|
status, _, _ = context.send_request("POST", path, body=payload_primary)
|
|
context.expect(status == 401, f"expected 401, got {status}")
|
|
|
|
status, _, _ = context.send_request(
|
|
"POST",
|
|
f"/api/classes/{context.class_id + 999}/lessons",
|
|
body=payload_primary,
|
|
headers=context.make_auth(
|
|
context.teacher_username,
|
|
context.teacher_password,
|
|
),
|
|
)
|
|
context.expect(
|
|
status == 403,
|
|
f"expected 403 for foreign class, got {status}",
|
|
)
|
|
|
|
status, body, _ = context.send_request(
|
|
"POST",
|
|
path,
|
|
body=payload_primary,
|
|
headers=context.make_auth(
|
|
context.teacher_username,
|
|
context.teacher_password,
|
|
),
|
|
)
|
|
context.expect(status == 201, f"expected 201, got {status}, body={body!r}")
|
|
|
|
data = json.loads(body)
|
|
context.lesson_first_id = int(data[context.K_IDENTIFIER])
|
|
context.lesson_first_date = payload_primary["дата"]
|
|
context.lesson_first_title = payload_primary["название"]
|
|
context.expect(
|
|
int(data["идентификатор класса"]) == context.class_id,
|
|
"lesson class mismatch",
|
|
)
|
|
context.expect(
|
|
data["название"] == payload_primary["название"],
|
|
"lesson title mismatch",
|
|
)
|
|
context.expect(
|
|
data["дата"] == payload_primary["дата"],
|
|
"lesson date mismatch",
|
|
)
|
|
|
|
payload_secondary = {
|
|
"дата урока": "2025-09-02",
|
|
"тема": "Геометрия",
|
|
"домашка": "Читать параграф 4",
|
|
}
|
|
|
|
status, body, _ = context.send_request(
|
|
"POST",
|
|
path,
|
|
body=payload_secondary,
|
|
headers=context.make_auth(
|
|
context.teacher_username,
|
|
context.teacher_password,
|
|
),
|
|
)
|
|
context.expect(
|
|
status == 201,
|
|
f"expected 201 for second lesson, got {status}",
|
|
)
|
|
|
|
data = json.loads(body)
|
|
context.lesson_second_id = int(data[context.K_IDENTIFIER])
|
|
context.lesson_second_date = payload_secondary["дата урока"]
|
|
context.lesson_second_title = payload_secondary["тема"]
|
|
context.expect(
|
|
data["домашнее задание"] == payload_secondary["домашка"],
|
|
"secondary homework mismatch",
|
|
)
|