Skip to content
Snippets Groups Projects
Commit e6f86d65 authored by ilona's avatar ilona
Browse files

API FormSemestreDescription + test

parent 513fb3d4
No related branches found
No related tags found
No related merge requests found
......@@ -33,6 +33,7 @@ from app.models import (
Departement,
Evaluation,
FormSemestre,
FormSemestreDescription,
FormSemestreEtape,
FormSemestreInscription,
Identite,
......@@ -812,6 +813,30 @@ def formsemestre_get_description(formsemestre_id: int):
return formsemestre.description.to_dict() if formsemestre.description else {}
@bp.post("/formsemestre/<int:formsemestre_id>/description/edit")
@api_web_bp.post("/formsemestre/<int:formsemestre_id>/description/edit")
@login_required
@scodoc
@permission_required(Permission.ScoView)
@as_json
def formsemestre_edit_description(formsemestre_id: int):
"""Modifie description externe du formsemestre
formsemestre_id : l'id du formsemestre
SAMPLES
-------
/formsemestre/<int:formsemestre_id>/description/edit;{""description"":""descriptif du semestre"", ""dispositif"":1}
"""
formsemestre = FormSemestre.get_formsemestre(formsemestre_id)
args = request.get_json(force=True) # may raise 400 Bad Request
if not formsemestre.description:
formsemestre.description = FormSemestreDescription()
formsemestre.description.from_dict(args)
db.session.commit()
return formsemestre.description.to_dict()
@bp.route("/formsemestre/<int:formsemestre_id>/description/image")
@api_web_bp.route("/formsemestre/<int:formsemestre_id>/description/image")
@login_required
......
......@@ -28,8 +28,10 @@ from tests.api.setup_test_api import (
API_URL,
CHECK_CERTIFICATE,
GET,
POST,
api_headers,
api_admin_headers,
set_headers,
)
from tests.api.tools_test_api import (
......@@ -780,3 +782,49 @@ def _compare_formsemestre_resultat(res: list[dict], ref: list[dict]):
if "nbabs" in k:
continue
assert res_d[k] == ref_d[k], f"values for key {k} differ."
def test_formsemestre_description(api_admin_headers):
"""
Test accès et modification de la description
"""
set_headers(api_admin_headers)
formsemestre_id = 1
r = GET(f"/formsemestre/{formsemestre_id}")
assert "description" not in r
r = POST(
f"/formsemestre/{formsemestre_id}/description/edit",
data={
"description": "une description",
"horaire": "un horaire",
"salle": "une salle",
"dispositif": 1,
"wip": True,
},
)
assert r["description"] == "une description"
assert r["horaire"] == "un horaire"
assert r["salle"] == "une salle"
assert r["dispositif"] == 1
assert r["wip"] is True
r = GET(f"/formsemestre/{formsemestre_id}/description")
assert r["description"] == "une description"
assert r["horaire"] == "un horaire"
assert r["salle"] == "une salle"
assert r["dispositif"] == 1
assert r["wip"] is True
r = POST(
f"/formsemestre/{formsemestre_id}/description/edit",
data={
"description": "",
"horaire": "",
"salle": "",
"dispositif": 0,
"wip": False,
},
)
assert r["description"] == ""
assert r["horaire"] == ""
assert r["salle"] == ""
assert r["dispositif"] == 0
assert r["wip"] is False
......@@ -100,7 +100,7 @@ def test_permissions(api_headers):
verify=CHECK_CERTIFICATE,
timeout=scu.SCO_TEST_API_TIMEOUT,
)
assert r.status_code == 200
assert r.status_code // 100 == 2 # 2xx success
# Même chose sans le jeton:
for rule in api_rules:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment