Coverage for tests / test_json_type.py: 100%
37 statements
« prev ^ index » next coverage.py v7.13.3, created at 2026-04-06 01:24 +0000
« prev ^ index » next coverage.py v7.13.3, created at 2026-04-06 01:24 +0000
1import json 1abcd
2from typing import Annotated 1abcd
4from fastapi import Cookie, FastAPI, Form, Header, Query 1abcd
5from fastapi.testclient import TestClient 1abcd
6from pydantic import Json 1abcd
8app = FastAPI() 1abcd
11@app.post("/form-json-list") 1abcd
12def form_json_list(items: Annotated[Json[list[str]], Form()]) -> list[str]: 1abcd
13 return items 1ijkl
16@app.get("/query-json-list") 1abcd
17def query_json_list(items: Annotated[Json[list[str]], Query()]) -> list[str]: 1abcd
18 return items 1mnop
21@app.get("/header-json-list") 1abcd
22def header_json_list(x_items: Annotated[Json[list[str]], Header()]) -> list[str]: 1abcd
23 return x_items 1qrst
26@app.get("/cookie-json-list") 1abcd
27def cookie_json_list(items: Annotated[Json[list[str]], Cookie()]) -> list[str]: 1abcd
28 return items 1efgh
31client = TestClient(app) 1abcd
34def test_form_json_list(): 1abcd
35 response = client.post( 1ijkl
36 "/form-json-list", data={"items": json.dumps(["abc", "def"])}
37 )
38 assert response.status_code == 200, response.text 1ijkl
39 assert response.json() == ["abc", "def"] 1ijkl
42def test_query_json_list(): 1abcd
43 response = client.get( 1mnop
44 "/query-json-list", params={"items": json.dumps(["abc", "def"])}
45 )
46 assert response.status_code == 200, response.text 1mnop
47 assert response.json() == ["abc", "def"] 1mnop
50def test_header_json_list(): 1abcd
51 response = client.get( 1qrst
52 "/header-json-list", headers={"x-items": json.dumps(["abc", "def"])}
53 )
54 assert response.status_code == 200, response.text 1qrst
55 assert response.json() == ["abc", "def"] 1qrst
58def test_cookie_json_list(): 1abcd
59 client.cookies.set("items", json.dumps(["abc", "def"])) 1efgh
60 response = client.get("/cookie-json-list") 1efgh
61 assert response.status_code == 200, response.text 1efgh
62 assert response.json() == ["abc", "def"] 1efgh
63 client.cookies.clear() 1efgh