import pytest from fastapi import FastAPI from fastapi.testclient import TestClient from .routes import router app = FastAPI() app.include_router(router) client = TestClient(app) @pytest.mark.usefixtures("client", "access_token") def test_list_classes(client, access_token): headers = {"Authorization": f"Bearer {access_token}"} response = client.get("/classes/", headers=headers) assert response.status_code == 200 assert "items" in response.json() assert "page" in response.json() assert "page_size" in response.json() @pytest.mark.usefixtures("client", "access_token") def test_get_class_not_found(client, access_token): headers = {"Authorization": f"Bearer {access_token}"} response = client.get("/classes/invalid_id", headers=headers) assert response.status_code == 404 def test_create_class_forbidden(): response = client.post("/classes/", json={"name": "Test Class"}) assert response.status_code in (403, 405, 404) def test_update_class_forbidden(): response = client.put("/classes/1", json={"name": "Updated Class"}) assert response.status_code in (403, 405, 404)