From 8aa2f7e4c6c459ed24800f4644fda20da6bf0375 Mon Sep 17 00:00:00 2001 From: DrNeumann388 Date: Thu, 6 Nov 2025 19:11:41 +0300 Subject: [PATCH] New try to formatting --- rating_api/routes/lecturer.py | 9 +++++++++ tests/test_routes/test_lecturer.py | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/rating_api/routes/lecturer.py b/rating_api/routes/lecturer.py index 2175cb9b..e068409c 100644 --- a/rating_api/routes/lecturer.py +++ b/rating_api/routes/lecturer.py @@ -91,6 +91,15 @@ async def update_lecturer_rating( return response_validated +@lecturer.get("/timetable-id/{timetable_id}", response_model=LecturerGet) +async def get_lecturer_by_timetable_id(timetable_id: int) -> LecturerGet: + lecturer: Lecturer = Lecturer.query(session=db.session).filter(Lecturer.timetable_id == timetable_id).one_or_none() + if lecturer is None: + raise ObjectNotFound(Lecturer, timetable_id) + result = LecturerGet.model_validate(lecturer) + return result + + @lecturer.get("/{id}", response_model=LecturerGet) async def get_lecturer(id: int, info: list[Literal["comments"]] = Query(default=[])) -> LecturerGet: """ diff --git a/tests/test_routes/test_lecturer.py b/tests/test_routes/test_lecturer.py index 3d4beedf..e12ff381 100644 --- a/tests/test_routes/test_lecturer.py +++ b/tests/test_routes/test_lecturer.py @@ -30,6 +30,26 @@ def test_create_lecturer(client, dbsession, response_status): assert lecturer is None +@pytest.mark.parametrize( + 'lecturer_n, response_status', + [ + (0, status.HTTP_200_OK), + (1, status.HTTP_200_OK), + (2, status.HTTP_200_OK), + (3, status.HTTP_404_NOT_FOUND), + ], +) +def test_get_lecturer_by_timetable_id(client, dbsession, lecturers, lecturer_n, response_status): + lecturer = ( + dbsession.query(Lecturer).filter(Lecturer.timetable_id == lecturers[lecturer_n].timetable_id).one_or_none() + ) + timetable_id = -1 + if lecturer: + timetable_id = lecturer.timetable_id + get_response = client.get(f'{url}/timetable-id/{timetable_id}') + assert get_response.status_code == response_status + + @pytest.mark.parametrize( 'lecturer_n,response_status', [