Skip to content

Commit 90059ba

Browse files
committed
fix: Solve problems with tests
1 parent c8fcde5 commit 90059ba

File tree

4 files changed

+27
-18
lines changed

4 files changed

+27
-18
lines changed

app/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
from app.services.populate_service import students_bulkwrite
1212

13-
from app.utils.json_encoder import JSONEncoder
13+
from app.utils.json_encoder import json_encoder
1414

1515
DESCRIPTION = '''
1616
A simple template for python projects using FastAPI and MongoDB
@@ -45,7 +45,7 @@ async def validation_exception_handler(
4545
for error in exc_json:
4646
response['message'].append(error['loc'][-1] + f": {error['msg']}")
4747

48-
return JSONResponse(content=JSONEncoder().encode(response), status_code=422)
48+
return JSONResponse(content=json_encoder(response), status_code=422)
4949

5050

5151
@app.on_event("startup")

app/models/student_model.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,21 @@
44

55

66
class StudentModel(BaseModel):
7-
name: str = Field(..., min_length=1, description="The name size must be greater than zero")
7+
name: str = Field(
8+
...,
9+
min_length=1,
10+
description="The name size must be greater than zero"
11+
)
812
surname: str = Field(
913
...,
1014
min_length=1,
1115
description="The surname size must be greater than zero"
1216
)
13-
age: int = Field(..., gt=0, description="The age must be greater than zero")
17+
age: int = Field(
18+
...,
19+
gt=0,
20+
description="The age must be greater than zero"
21+
)
1422
phone: str | None = Field(...)
1523

1624
@validator("phone")

app/utils/json_encoder.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ def default(self, o: Any) -> Any:
1515
return str(o)
1616
return JSONEncoder.default(self, o)
1717

18-
def json_encoder(object: dict) -> Any:
19-
return loads(JSONencoder().encode(object))
18+
19+
def json_encoder(raw_response: dict[str, Any]) -> Any:
20+
return loads(JSONencoder().encode(raw_response))

test/controllers/test_student_controller.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from json import loads, dumps
1+
from json import dumps
22

33
from typing import Any
44

@@ -29,7 +29,7 @@ async def test_create_student_ok(mongo_mock: Any) -> None:
2929
)
3030

3131
assert response.status_code == 201
32-
inserted_student = loads(response.json())
32+
inserted_student = response.json()
3333
assert inserted_student['name'] == student_data['name']
3434
assert inserted_student['surname'] == student_data['surname']
3535
assert inserted_student['age'] == student_data['age']
@@ -53,7 +53,7 @@ async def test_create_student_empty_name_surname(mongo_mock: Any) -> None:
5353
)
5454

5555
assert response.status_code == 422
56-
error = loads(response.json())
56+
error = response.json()
5757
assert error['message'][0] == 'name: ensure this value has at least 1 characters'
5858
assert error['message'][1] == 'surname: ensure this value has at least 1 characters'
5959

@@ -76,7 +76,7 @@ async def test_create_student_ok_age(mongo_mock: Any, age: int) -> None:
7676
)
7777

7878
assert response.status_code == 201
79-
inserted_student = loads(response.json())
79+
inserted_student = response.json()
8080
assert inserted_student['name'] == student_data['name']
8181
assert inserted_student['surname'] == student_data['surname']
8282
assert inserted_student['age'] == student_data['age']
@@ -101,7 +101,7 @@ async def test_create_student_bad_age(mongo_mock: Any, age: int) -> None:
101101
)
102102

103103
assert response.status_code == 422
104-
error = loads(response.json())
104+
error = response.json()
105105
assert error['message'][0] == 'age: ensure this value is greater than 0'
106106

107107

@@ -122,7 +122,7 @@ async def test_create_student_bad_phone(mongo_mock: Any) -> None:
122122
)
123123

124124
assert response.status_code == 422
125-
error = loads(response.json())
125+
error = response.json()
126126
assert error['message'][0] == 'phone: The phone 619 asd 721 is not correct'
127127

128128

@@ -132,7 +132,7 @@ async def test_read_student(mongo_mock: Any) -> None:
132132

133133
response = client.get('/student/6329cd902186c0e6c5fa5eef')
134134
assert response.status_code == 200
135-
readed_student = loads(response.json())
135+
readed_student = response.json()
136136
assert readed_student['name'] == 'Myke'
137137
assert readed_student['surname'] == 'Fernandez'
138138
assert readed_student['age'] == 38
@@ -145,7 +145,7 @@ async def test_read_student_not_found(mongo_mock: Any) -> None:
145145

146146
response = client.get('/student/632c2636db39c267a803f1ed')
147147
assert response.status_code == 404
148-
error = loads(response.json())
148+
error = response.json()
149149
assert error['message'][0] == 'Student with id 632c2636db39c267a803f1ed not found'
150150

151151

@@ -161,7 +161,7 @@ async def test_update_student(mongo_mock: Any) -> None:
161161
}
162162
response = client.put('/student/6329cd902186c0e6c5fa5eef', data=dumps(updated_student_data))
163163
assert response.status_code == 200
164-
json_response = loads(response.json())
164+
json_response = response.json()
165165
assert (
166166
json_response['message'] == 'Student with id 6329cd902186c0e6c5fa5eef updated successfully'
167167
)
@@ -179,7 +179,7 @@ async def test_update_student_not_found(mongo_mock: Any) -> None:
179179
}
180180
response = client.put('/student/632c2636db39c267a803f1ed', data=dumps(updated_student_data))
181181
assert response.status_code == 404
182-
error = loads(response.json())
182+
error = response.json()
183183
assert error['message'][0] == 'Student with id 632c2636db39c267a803f1ed not found'
184184

185185

@@ -189,7 +189,7 @@ async def test_delete_employee(mongo_mock: Any) -> None:
189189

190190
response = client.delete('/student/6329cd902186c0e6c5fa5eef')
191191
assert response.status_code == 200
192-
json_response = loads(response.json())
192+
json_response = response.json()
193193
assert (
194194
json_response['message'] == 'Student with id 6329cd902186c0e6c5fa5eef deleted successfully'
195195
)
@@ -201,5 +201,5 @@ async def test_delete_employee_not_found(mongo_mock: Any) -> None:
201201

202202
response = client.delete('/student/632c2636db39c267a803f1ed')
203203
assert response.status_code == 404
204-
error = loads(response.json())
204+
error = response.json()
205205
assert error['message'][0] == 'Student with id 632c2636db39c267a803f1ed not found'

0 commit comments

Comments
 (0)