Gurucool_Test / tests /api /api_v1 /test_department.py
ashwinR's picture
Upload 245 files
b7a7f32
from fastapi.encoders import jsonable_encoder
import models
from core.config import settings
from . import test_school
headers = {
"accept": "application/json",
"Content-Type": "application/json",
}
def test_post_department(super_user_client, db):
test_school.test_post_school(super_user_client)
school_id = (
db.query(models.School).filter(models.School.name == "Test School").first().id
)
data = {"name": "Test Department", "school_id": school_id}
post_req = super_user_client.post(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/",
json=data,
)
assert post_req.status_code == 200, "Department post request failed"
def test_get_department(super_user_client):
get_req = super_user_client.get(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/",
)
assert get_req.status_code == 200
departments = get_req.json()
created_department = [
department
for department in departments
if (department.get("name") == "Test Department")
]
assert len(created_department) == 1
def test_get_specific_department(super_user_client):
get_req = super_user_client.get(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/",
)
assert get_req.status_code == 200
departments = get_req.json()
created_department = [
department
for department in departments
if (department.get("name") == "Test Department")
]
specific_get_req = super_user_client.get(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/{created_department[0]['id']}/",
)
assert specific_get_req.status_code == 200
created_department_specific = specific_get_req.json()
assert created_department_specific
assert created_department_specific.get("name") == "Test Department"
def test_put_specific_department(super_user_client):
get_req = super_user_client.get(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/",
)
assert get_req.status_code == 200
departments = get_req.json()
created_department = [
department
for department in departments
if (department.get("name") == "Test Department")
]
data = {
"name": "Updated Department",
}
put_req = super_user_client.put(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/{created_department[0]['id']}/",
json=data,
)
assert put_req.status_code == 200
specific_get_req = super_user_client.get(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/{created_department[0]['id']}/",
)
assert specific_get_req.status_code == 200
created_department_specific = specific_get_req.json()
assert created_department_specific
assert created_department_specific.get("name") == "Updated Department"
def test_delete_department(super_user_client, department_id=None):
get_req = super_user_client.get(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/",
)
assert get_req.status_code == 200
departments = get_req.json()
if not department_id:
created_department = [
department
for department in departments
if (department.get("name") == "Updated Department")
]
else:
created_department = [
department
for department in departments
if (department.get("id") == department_id)
]
delete_req = super_user_client.delete(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/{created_department[0]['id']}/",
)
assert delete_req.status_code == 200
get_req = super_user_client.get(
f"{settings.BACKEND_URL_BASE}{settings.API_V1_STR}/department/",
)
assert get_req.status_code == 200
departments = get_req.json()
filtered_department = [
department
for department in departments
if (
department.get("name") == "Updated School"
or department.get("name") == "Test Department"
)
]
assert not filtered_department
test_school.test_delete_school(
super_user_client, school_id=created_department[0]["school_id"]
)