copied the code from the working repo

This commit is contained in:
2024-11-30 16:00:48 +03:00
parent f22b92869b
commit 15ac0cb9b8
148 changed files with 23342 additions and 0 deletions

View File

@@ -0,0 +1,158 @@
import pytest
from app import schemas, models
@pytest.fixture()
def create_hardskills(session):
hardskill1 = models.Hard_skills(Title="Python")
hardskill2 = models.Hard_skills(Title="Java")
session.add(hardskill1)
session.add(hardskill2)
session.commit()
session.refresh(hardskill1)
session.refresh(hardskill2)
return [hardskill1, hardskill2]
Glob_StudentID = 1 # Важно!!! Данная переменная не должна совпадать с StudentID из student_data_test.
@pytest.fixture
def student_data_test():
return {
"StudentID": 1234567890,
"Name": "Журавлёв Василий Иванович",
"Type": "Работу",
"Group": "БУТ2101",
"Time": ["20", "30", "40"],
"Soft_skills": "коммуникабельность, работа в команде, адаптивность",
"Link": "https://Vasiliy.com",
"Email": "Vasiliy@gmail.com"
}
@pytest.fixture
def job_data_test(create_hardskills):
hardskills = create_hardskills
return {
"job": {
"Company_name": "АСУ-ВЭИ",
"Job_name": "Работа с ПЛК",
"Year": "3",
"Qualification": False,
"Soft_skills": "Работа в команде",
"Salary": 25000,
"Email": "info@asu-vei.ru",
"Archive": False,
"Responsibilities": "Разработка методических пособий, для работы с ПЛК. Тестирование scada системы"
},
"hardskills": [
{
"JobID": 1,
"Hard_skillID": hardskills[0].Hard_skillID
},
{
"JobID": 1,
"Hard_skillID": hardskills[1].Hard_skillID
}
]
}
@pytest.fixture
def favourite_data_test(create_student, create_job):
student_id = create_student["StudentID"]
return {
"StudentID": student_id,
"JobID": 1
}
@pytest.fixture
def create_favourite(client, favourite_data_test):
response = client.post("/students/favourites/", json=favourite_data_test)
assert response.status_code == 201
return response.json()
@pytest.fixture
def create_job(client, job_data_test):
response = client.post("/jobs/", json=job_data_test)
assert response.status_code == 201
return response.json()
@pytest.fixture
def create_student(client, student_data_test):
response = client.post("/students/", json={"student": student_data_test})
assert response.status_code == 201
return response.json()
def test_root(client):
res = client.get("/")
assert res.json().get('message') == "I'm ok!"
assert res.status_code == 200
def test_get_jobs(client):
response = client.get("/students/")
assert response.status_code == 200
def test_get_students(client):
response = client.get("/students/")
assert response.status_code == 200
def test_get_student_by_id(client, create_student):
student_id = create_student["StudentID"]
response = client.get(f"/students/{student_id}")
assert response.status_code == 200
student = schemas.Student(**response.json())
assert student.StudentID == student_id
# Возможно стоит удалить этот тест
def test_get_student_by_id_not_exist(client, create_student):
response = client.get(f"/students/{Glob_StudentID}")
assert response.status_code == 404
def test_create_student(client, student_data_test):
response = client.post("/students/", json={"student": student_data_test})
assert response.status_code == 201
new_student = schemas.Student(**response.json())
assert new_student.Name == "Журавлёв Василий Иванович"
def test_update_student(client, create_student):
student_id = create_student["StudentID"]
updated_data = {
"Name": "Журавлёв Владимир Иванович",
"Type": "Стажировку",
"Group": "БУТ2101",
"Time": ["20"],
"Soft_skills": "коммуникабельность, адаптивность",
"Link": "https://Vladimir.com",
"Email": "Vladimir@gmail.com"
}
response = client.put(f"/students/{student_id}", json=updated_data)
assert response.status_code == 200
updated_student = schemas.Student(**response.json())
assert updated_student.Name == "Журавлёв Владимир Иванович"
assert updated_student.Type == "Стажировку"
assert updated_student.Group == "БУТ2101"
assert updated_student.Time == ["20"]
assert updated_student.Soft_skills == "коммуникабельность, адаптивность"
assert updated_student.Link == "https://Vladimir.com"
assert updated_student.Email == "Vladimir@gmail.com"
def test_delete_student(client, create_student):
student_id = create_student["StudentID"]
response = client.delete(f"/students/{student_id}")
assert response.status_code == 204
response = client.get(f"/students/{student_id}")
assert response.status_code == 404
# Для этого теста нужно создать job
def test_add_to_favourites(client, create_favourite):
student_id = create_favourite["StudentID"]
job_id = create_favourite["JobID"]
assert student_id == student_id
assert job_id == 1
# Для этого теста наверное надо ещё заполнить таблицу Matches, так что думаю этот тест не очень стабильный, но о работает)))
# def test_get_favourites(client, create_student, create_job, create_favourite):
# student_id = create_student["StudentID"]
# response = client.get(f"/students/favourites/{student_id}")
# # assert response.status_code == 200 # как это может ломать тест?
# favourites = response.json()
# assert len(favourites) > 0