Coverage for tests/test_response_model_default_factory.py: 100%

24 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-09-22 00:03 +0000

1from fastapi import FastAPI 1abcdef

2from fastapi.testclient import TestClient 1abcdef

3from pydantic import BaseModel, Field 1abcdef

4 

5app = FastAPI() 1abcdef

6 

7 

8class ResponseModel(BaseModel): 1abcdef

9 code: int = 200 1abcdef

10 message: str = Field(default_factory=lambda: "Successful operation.") 1aghbijckldmneopfqr

11 

12 

13@app.get( 1abcdef

14 "/response_model_has_default_factory_return_dict", 

15 response_model=ResponseModel, 

16) 

17async def response_model_has_default_factory_return_dict(): 1abcdef

18 return {"code": 200} 1gikmoq

19 

20 

21@app.get( 1abcdef

22 "/response_model_has_default_factory_return_model", 

23 response_model=ResponseModel, 

24) 

25async def response_model_has_default_factory_return_model(): 1abcdef

26 return ResponseModel() 1hjlnpr

27 

28 

29client = TestClient(app) 1abcdef

30 

31 

32def test_response_model_has_default_factory_return_dict(): 1abcdef

33 response = client.get("/response_model_has_default_factory_return_dict") 1gikmoq

34 

35 assert response.status_code == 200, response.text 1gikmoq

36 

37 assert response.json()["code"] == 200 1gikmoq

38 assert response.json()["message"] == "Successful operation." 1gikmoq

39 

40 

41def test_response_model_has_default_factory_return_model(): 1abcdef

42 response = client.get("/response_model_has_default_factory_return_model") 1hjlnpr

43 

44 assert response.status_code == 200, response.text 1hjlnpr

45 

46 assert response.json()["code"] == 200 1hjlnpr

47 assert response.json()["message"] == "Successful operation." 1hjlnpr