Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6262742

Browse files
fix for
#15
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)

AltStyle によって変換されたページ (->オリジナル) /