Coverage for tests / test_invalid_sequence_param.py: 100%

31 statements  

« prev     ^ index     » next       coverage.py v7.13.3, created at 2026-02-21 17:29 +0000

1import pytest 1abcd

2from fastapi import FastAPI, Query 1abcd

3from pydantic import BaseModel 1abcd

4 

5 

6def test_invalid_sequence(): 1abcd

7 with pytest.raises( 1efg

8 AssertionError, 

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

10 ): 

11 app = FastAPI() 1efg

12 

13 class Item(BaseModel): 1efg

14 title: str 1efg

15 

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

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

18 pass # pragma: no cover 

19 

20 

21def test_invalid_tuple(): 1abcd

22 with pytest.raises( 1hij

23 AssertionError, 

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

25 ): 

26 app = FastAPI() 1hij

27 

28 class Item(BaseModel): 1hij

29 title: str 1hij

30 

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

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

33 pass # pragma: no cover 

34 

35 

36def test_invalid_dict(): 1abcd

37 with pytest.raises( 1klm

38 AssertionError, 

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

40 ): 

41 app = FastAPI() 1klm

42 

43 class Item(BaseModel): 1klm

44 title: str 1klm

45 

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

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

48 pass # pragma: no cover 

49 

50 

51def test_invalid_simple_dict(): 1abcd

52 with pytest.raises( 1nop

53 AssertionError, 

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

55 ): 

56 app = FastAPI() 1nop

57 

58 class Item(BaseModel): 1nop

59 title: str 1nop

60 

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

62 def read_items(q: dict | None = Query(default=None)): 1nop

63 pass # pragma: no cover