from uuid import uuid4 from fastapi.testclient import TestClient from config.database import Base, engine from main import app def setup_module(module): Base.metadata.create_all(bind=engine) def teardown_module(module): Base.metadata.drop_all(bind=engine) client = TestClient(app) def test_create_and_list_scenario(): scenario_name = f"Scenario-{uuid4()}" response = client.post( "/api/scenarios/", json={"name": scenario_name, "description": "Integration test"}, ) assert response.status_code == 200 data = response.json() assert data["name"] == scenario_name response2 = client.get("/api/scenarios/") assert response2.status_code == 200 data2 = response2.json() assert any(s["name"] == scenario_name for s in data2) def test_create_duplicate_scenario_rejected(): scenario_name = f"Duplicate-{uuid4()}" payload = {"name": scenario_name, "description": "Primary"} first_resp = client.post("/api/scenarios/", json=payload) assert first_resp.status_code == 200 second_resp = client.post("/api/scenarios/", json=payload) assert second_resp.status_code == 400 assert second_resp.json()["detail"] == "Scenario already exists"