Skip to content

Commit 6262742

Browse files
committed
1 parent 5ac8df8 commit 6262742

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

days/009-012-modern-apis-starred/demo/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def list_cars() -> List[Car]:
3636

3737

3838
def create_car(car: Car) -> JSONResponse:
39-
car_id = len(cars) + 1
39+
car_id = max(cars.keys())+1
4040
car.id = car_id
4141
cars[car_id] = car
4242
return JSONResponse(Car(car), status_code=201)

days/009-012-modern-apis-starred/demo/test_app.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ def test_list_cars():
1010
assert response.status_code == 200
1111

1212
json_resp = response.json()
13-
assert len(json_resp) == 1000
13+
car_count = len(cars)
14+
assert len(json_resp) == car_count
1415

1516
expected = {'id': 1, 'manufacturer': 'Mercedes-Benz',
1617
'model': '500SEC', 'year': 1993,
@@ -19,13 +20,14 @@ def test_list_cars():
1920

2021

2122
def test_create_car():
23+
car_count = len(cars)
2224
data = {'manufacturer': 'Honda',
2325
'model': 'some_model',
2426
'year': 2018}
2527

2628
response = client.post('/', data=data)
2729
assert response.status_code == 201
28-
assert len(cars) == 1001
30+
assert len(cars) == car_count + 1
2931

3032
response = client.get('/1001/')
3133
expected = {'id': 1001, 'manufacturer': 'Honda',
@@ -44,7 +46,21 @@ def test_create_car():
4446

4547
response = client.get('/1002/')
4648
assert response.json() == expected
47-
assert len(cars) == 1002
49+
assert len(cars) == car_count + 2
50+
51+
52+
def test_create_car_after_delete():
53+
"""Test to fail create_car's len(cars)+1 (fix max(cars.keys())+1)"""
54+
car_count = len(cars)
55+
response = client.delete(f'/99/')
56+
assert response.status_code == 204
57+
assert len(cars) == car_count - 1
58+
data = {'manufacturer': 'Honda',
59+
'model': 'blabla',
60+
'year': 2019}
61+
response = client.post('/', data=data)
62+
assert response.status_code == 201
63+
assert len(cars) == car_count
4864

4965

5066
def test_create_car_missing_fields():
@@ -129,7 +145,6 @@ def test_update_car_validation():
129145

130146
def test_delete_car():
131147
car_count = len(cars)
132-
133148
for i in (11, 22, 33):
134149
response = client.delete(f'/{i}/')
135150
assert response.status_code == 204

0 commit comments

Comments
 (0)