CostPrediction/tests/test_demo_routes.py

41 lines
1.1 KiB
Python

from src import create_app
def test_demo_algorithms_route_returns_available_models():
app = create_app()
client = app.test_client()
response = client.get("/api/demo/algorithms")
assert response.status_code == 200
payload = response.get_json()
assert any(item["key"] == "random_forest" for item in payload["algorithms"])
def test_demo_dataset_route_returns_local_file_summary():
app = create_app()
client = app.test_client()
response = client.get("/api/demo/dataset")
assert response.status_code == 200
payload = response.get_json()
assert payload["source"] == "local-file"
assert payload["row_count"] >= 20
def test_demo_run_route_returns_metrics_without_mysql():
app = create_app()
client = app.test_client()
response = client.post(
"/api/demo/run",
json={"algorithms": ["linear", "random_forest"]},
)
assert response.status_code == 200
payload = response.get_json()
assert payload["source"] == "local-file"
assert set(payload["metrics"]) == {"linear", "random_forest"}
assert payload["prediction_points"]