Coverage for tests / test_invalid_sequence_param.py: 100%

32 statements  

« prev     ^ index     » next       coverage.py v7.13.3, created at 2026-02-12 18:15 +0000

1from typing import Optional 1abcd

2 

3import pytest 1abcd

4from fastapi import FastAPI, Query 1abcd

5from pydantic import BaseModel 1abcd

6 

7 

8def test_invalid_sequence(): 1abcd

9 with pytest.raises( 1efg

10 AssertionError, 

11 match="Query parameter 'q' must be one of the supported types", 

12 ): 

13 app = FastAPI() 1efg

14 

15 class Item(BaseModel): 1efg

16 title: str 1efg

17 

18 @app.get("/items/") 1efg

19 def read_items(q: list[Item] = Query(default=None)): 1efg

20 pass # pragma: no cover 

21 

22 

23def test_invalid_tuple(): 1abcd

24 with pytest.raises( 1hij

25 AssertionError, 

26 match="Query parameter 'q' must be one of the supported types", 

27 ): 

28 app = FastAPI() 1hij

29 

30 class Item(BaseModel): 1hij

31 title: str 1hij

32 

33 @app.get("/items/") 1hij

34 def read_items(q: tuple[Item, Item] = Query(default=None)): 1hij

35 pass # pragma: no cover 

36 

37 

38def test_invalid_dict(): 1abcd

39 with pytest.raises( 1klm

40 AssertionError, 

41 match="Query parameter 'q' must be one of the supported types", 

42 ): 

43 app = FastAPI() 1klm

44 

45 class Item(BaseModel): 1klm

46 title: str 1klm

47 

48 @app.get("/items/") 1klm

49 def read_items(q: dict[str, Item] = Query(default=None)): 1klm

50 pass # pragma: no cover 

51 

52 

53def test_invalid_simple_dict(): 1abcd

54 with pytest.raises( 1nop

55 AssertionError, 

56 match="Query parameter 'q' must be one of the supported types", 

57 ): 

58 app = FastAPI() 1nop

59 

60 class Item(BaseModel): 1nop

61 title: str 1nop

62 

63 @app.get("/items/") 1nop

64 def read_items(q: Optional[dict] = Query(default=None)): 1nop

65 pass # pragma: no cover