fastapi

Форк
0
/
test_required_noneable.py 
62 строки · 1.5 Кб
1
from typing import Union
2

3
from fastapi import Body, FastAPI, Query
4
from fastapi.testclient import TestClient
5

6
app = FastAPI()
7

8

9
@app.get("/query")
10
def read_query(q: Union[str, None]):
11
    return q
12

13

14
@app.get("/explicit-query")
15
def read_explicit_query(q: Union[str, None] = Query()):
16
    return q
17

18

19
@app.post("/body-embed")
20
def send_body_embed(b: Union[str, None] = Body(embed=True)):
21
    return b
22

23

24
client = TestClient(app)
25

26

27
def test_required_nonable_query_invalid():
28
    response = client.get("/query")
29
    assert response.status_code == 422
30

31

32
def test_required_noneable_query_value():
33
    response = client.get("/query", params={"q": "foo"})
34
    assert response.status_code == 200
35
    assert response.json() == "foo"
36

37

38
def test_required_nonable_explicit_query_invalid():
39
    response = client.get("/explicit-query")
40
    assert response.status_code == 422
41

42

43
def test_required_nonable_explicit_query_value():
44
    response = client.get("/explicit-query", params={"q": "foo"})
45
    assert response.status_code == 200
46
    assert response.json() == "foo"
47

48

49
def test_required_nonable_body_embed_no_content():
50
    response = client.post("/body-embed")
51
    assert response.status_code == 422
52

53

54
def test_required_nonable_body_embed_invalid():
55
    response = client.post("/body-embed", json={"invalid": "invalid"})
56
    assert response.status_code == 422
57

58

59
def test_required_noneable_body_embed_value():
60
    response = client.post("/body-embed", json={"b": "foo"})
61
    assert response.status_code == 200
62
    assert response.json() == "foo"
63

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.