Coverage for tests/test_response_model_default_factory.py: 100%

24 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-12-04 08:29 +0000

1from fastapi import FastAPI 1abcdefg

2from fastapi.testclient import TestClient 1abcdefg

3from pydantic import BaseModel, Field 1abcdefg

4 

5app = FastAPI() 1abcdefg

6 

7 

8class ResponseModel(BaseModel): 1abcdefg

9 code: int = 200 1abcdefg

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

11 

12 

13@app.get( 1abcdefg

14 "/response_model_has_default_factory_return_dict", 

15 response_model=ResponseModel, 

16) 

17async def response_model_has_default_factory_return_dict(): 1abcdefg

18 return {"code": 200} 1hjlnprt

19 

20 

21@app.get( 1abcdefg

22 "/response_model_has_default_factory_return_model", 

23 response_model=ResponseModel, 

24) 

25async def response_model_has_default_factory_return_model(): 1abcdefg

26 return ResponseModel() 1ikmoqsu

27 

28 

29client = TestClient(app) 1abcdefg

30 

31 

32def test_response_model_has_default_factory_return_dict(): 1abcdefg

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

34 

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

36 

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

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

39 

40 

41def test_response_model_has_default_factory_return_model(): 1abcdefg

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

43 

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

45 

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

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