From b5b0a421b55c253fe639c66181d269eaa8bb0e41 Mon Sep 17 00:00:00 2001 From: rifat Date: Wed, 20 Aug 2025 17:39:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=BF=D0=BE=D0=B4=D0=B0=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/rating/patch_lecturer/conftest.py | 43 +++++++++ .../patch_lecturer/test_patch_lecturer.py | 93 +++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 tests/rating/patch_lecturer/conftest.py create mode 100644 tests/rating/patch_lecturer/test_patch_lecturer.py diff --git a/tests/rating/patch_lecturer/conftest.py b/tests/rating/patch_lecturer/conftest.py new file mode 100644 index 0000000..7cb4b60 --- /dev/null +++ b/tests/rating/patch_lecturer/conftest.py @@ -0,0 +1,43 @@ +import pytest +import requests +import os +from dotenv import load_dotenv +load_dotenv() + +def get_token(): + BASE_URL = os.getenv("BASE_URL") + LOGIN_RATING = os.getenv("LOGIN_RATING") + PASSWORD_RATING = os.getenv("PASSWORD_RATING") + url = f"{BASE_URL}/auth/email/login" + data ={ + "email": LOGIN_RATING, + "password": PASSWORD_RATING, + "scopes":[], + "session_name": "string" + } + post_response_token = requests.post(url, json=data) + post_response_token_json=post_response_token.json() + return post_response_token_json.get("token") + +BASE_URL = os.getenv("BASE_URL") +BASE_HEADERS = {"Authorization": get_token()} +timetable_id = 1583 + + +@pytest.fixture(scope = "function") + +def lecturer(): + url = f"{BASE_URL}/rating/lecturer" + data = { + "first_name": "string", + "last_name": "string", + "middle_name": "string", + "avatar_link": "string", + "timetable_id": timetable_id + } + response = requests.post(url, json = data, headers = BASE_HEADERS) + lecturer_id = response.json().get("id") + + yield lecturer_id + + requests.delete(f"{url}/{lecturer_id}", headers = BASE_HEADERS) diff --git a/tests/rating/patch_lecturer/test_patch_lecturer.py b/tests/rating/patch_lecturer/test_patch_lecturer.py new file mode 100644 index 0000000..5a09f07 --- /dev/null +++ b/tests/rating/patch_lecturer/test_patch_lecturer.py @@ -0,0 +1,93 @@ +import pytest +import requests +import os +from dotenv import load_dotenv +load_dotenv() + +def get_token(): + BASE_URL = os.getenv("BASE_URL") + LOGIN_RATING = os.getenv("LOGIN_RATING") + PASSWORD_RATING = os.getenv("PASSWORD_RATING") + url = f"{BASE_URL}/auth/email/login" + data ={ + "email": LOGIN_RATING, + "password": PASSWORD_RATING, + "scopes":[], + "session_name": "string" + } + post_response_token = requests.post(url, json=data) + post_response_token_json=post_response_token.json() + return post_response_token_json.get("token") + +BASE_URL = os.getenv("BASE_URL") +BASE_HEADERS = {"Authorization": get_token()} +timetable_id = 1583 + +@pytest.mark.parametrize("data", [{ + "first_name": "string1", + "last_name": "string", + "middle_name": "string", + "avatar_link": "string", + "timetable_id": timetable_id + }, {"first_name": "string", + "last_name": "string2", + "middle_name": "string", + "avatar_link": "string", + "timetable_id": timetable_id}, { + "first_name": "string", + "last_name": "string", + "middle_name": "string3", + "avatar_link": "string", + "timetable_id": timetable_id},{ + "first_name": "string", + "last_name": "string", + "middle_name": "string", + "avatar_link": "string4", + "timetable_id": timetable_id}]) +def test_patch_lecturer_strings(lecturer, data): + url = f"{BASE_URL}/rating/lecturer/{lecturer}" + response = requests.patch(url, json = data, headers = BASE_HEADERS) + assert response.status_code == 200 + + +@pytest.mark.parametrize("data", [{ + "first_name": "string1", + "last_name": "string1", + "middle_name": "string1", + "avatar_link": "string1", + "timetable_id": timetable_id + 1 + }]) +def test_patch_lecturer_timetable_id(lecturer, data): + url = f"{BASE_URL}/rating/lecturer/{lecturer}" + response = requests.patch(url, json = data, headers = BASE_HEADERS) + assert response.status_code == 200 + + +@pytest.mark.parametrize("data", [ + {"first_name": "string", + "last_name": "string", + "middle_name": "string", + "avatar_link": "string", + "timetable_id": -1}, + {"first_name": "string", + "last_name": "string", + "middle_name": "string", + "avatar_link": "string", + "timetable_id": "sdfb" + }]) +def test_patch_lecturer_incorrect_timetable_id(lecturer, data): + url = f"{BASE_URL}/rating/lecturer/{lecturer}" + response = requests.patch(url, json = data, headers = BASE_HEADERS) + assert response.status_code == 422 + +@pytest.mark.parametrize("data", [{ + "first_name": "string1", + "last_name": "string1", + "middle_name": "string1", + "avatar_link": "string1", + "timetable_id": timetable_id + 1 + }]) +def test_patch_lecturer_without_authorization(lecturer, data): + url = f"{BASE_URL}/rating/lecturer/{lecturer}" + response = requests.patch(url, json = data) + assert response.status_code == 401 or 403