from fastapi.testclient import TestClient from main import app client = TestClient(app) def test_create_people(): response = client.post( "/people", json=people_fixture ) assert response.status_code == 200 assert response.json()['records_created'] == 10 def test_read_average_age(): response = client.get("/average_age") assert response.status_code == 200 r = response.json() assert r[0]['average_age'] == 15.0 assert r[1]['average_age'] == 25.0 assert r[2]['average_age'] == 23.3 assert r[3]['average_age'] == 45.0 def test_read_count_by_country(): response = client.get("/count_by_country") assert response.status_code == 200 r = response.json() assert r[0]['people_count'] == 2 assert r[1]['people_count'] == 4 assert r[2]['people_count'] == 3 assert r[3]['people_count'] == 1 def test_read_count_by_gender(): response = client.get("/gender_repartition/DE") assert response.status_code == 200 r = response.json() assert r['female_proportion'] == 33.3 people_fixture = { "people": [ {"name": "Alice", "age": 10, "gender": "F", "country": "FR"}, {"name": "Bob", "age": 20, "gender": "M", "country": "FR"}, {"name": "Charlie", "age": 10, "gender": "M", "country": "BE"}, {"name": "David", "age": 20, "gender": "M", "country": "BE"}, {"name": "Evelyn", "age": 30, "gender": "F", "country": "BE"}, {"name": "Fanny", "age": 40, "gender": "F", "country": "BE"}, {"name": "Ghislain", "age": 20, "gender": "M", "country": "DE"}, {"name": "Hector", "age": 22, "gender": "M", "country": "DE"}, {"name": "Isabelle", "age": 28, "gender": "F", "country": "DE"}, {"name": "Jocelyne", "age": 45, "gender": "F", "country": "IT"}, ] }