improving tests tests
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,3 +1,5 @@
|
||||
.idea/
|
||||
__pycache__/
|
||||
|
||||
/sql_app.db
|
||||
/back/venv/
|
||||
|
||||
@@ -1 +1,4 @@
|
||||
fastapi==0.89.1
|
||||
pydantic==1.10.4
|
||||
pytest==7.2.0
|
||||
SQLAlchemy==1.4.46
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
from fastapi.testclient import TestClient
|
||||
from main import app
|
||||
from pytest import approx
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from main import app
|
||||
|
||||
client = TestClient(app)
|
||||
|
||||
@@ -17,28 +19,53 @@ def test_create_people():
|
||||
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
|
||||
|
||||
for a in response.json():
|
||||
if a['country'] == 'FR':
|
||||
assert a['average_age'] == 15.0
|
||||
elif a['country'] == 'BE':
|
||||
assert a['average_age'] == 25.0
|
||||
elif a['country'] == 'DE':
|
||||
assert a['average_age'] == approx(23. + 1/3)
|
||||
elif a['country'] == 'IT':
|
||||
assert a['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
|
||||
|
||||
for a in response.json():
|
||||
if a['country'] == 'FR':
|
||||
assert a['people_count'] == 2
|
||||
elif a['country'] == 'BE':
|
||||
assert a['people_count'] == 4
|
||||
elif a['country'] == 'DE':
|
||||
assert a['people_count'] == 3
|
||||
elif a['country'] == 'IT':
|
||||
assert a['people_count'] == 1
|
||||
|
||||
|
||||
def test_read_count_by_gender():
|
||||
response = client.get("/gender_repartition/FR")
|
||||
assert response.status_code == 200
|
||||
r = response.json()
|
||||
assert r['female_proportion'] == .5
|
||||
|
||||
response = client.get("/gender_repartition/BE")
|
||||
assert response.status_code == 200
|
||||
r = response.json()
|
||||
assert r['female_proportion'] == .5
|
||||
|
||||
response = client.get("/gender_repartition/DE")
|
||||
assert response.status_code == 200
|
||||
r = response.json()
|
||||
assert r['female_proportion'] == 33.3
|
||||
assert r['female_proportion'] == approx(1/3)
|
||||
|
||||
response = client.get("/gender_repartition/IT")
|
||||
assert response.status_code == 200
|
||||
r = response.json()
|
||||
assert r['female_proportion'] == 1
|
||||
|
||||
|
||||
people_fixture = {
|
||||
|
||||
Reference in New Issue
Block a user