Метод post класса TestClient
Метод post применяется к экземпляру класса TestClient
и отправляет POST-запрос на указанный путь.
Первым параметром передаётся путь URL.
Вторым - необязательные данные: json, data, content,
files, headers, cookies и другие.
Метод возвращает объект Response с результатом ответа.
Синтаксис
client.post(url, json=None, data=None, content=None, files=None, headers=None, cookies=None)
Пример
Давайте создадим приложение с POST-маршрутом и отправим на него запрос:
from fastapi import FastAPI
app = FastAPI()
@app.post('/user')
def create_user():
return {'text': 'created'}
Теперь напишем тест с использованием TestClient:
<+python+>
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
res = client.post('/user')
print(res.status_code)
print(res.json())
<-python+>
Результат выполнения кода:
<+python+>
200
{'text': 'created'}
<-python+>
Пример
Давайте передадим JSON-данные в теле POST-запроса:
<+python+>
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
@app.post('/user')
def create_user(user: User):
return {'name': user.name}
<-python+>
Отправим данные через параметр json:
<+python+>
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
res = client.post('/user', json={'name': 'abcde'})
print(res.status_code)
print(res.json())
<-python+>
Результат выполнения кода:
<+python+>
200
{'name': 'abcde'}
<-python+>
Пример
Давайте передадим данные формы через параметр data:
<+python+>
from fastapi import FastAPI, Form
app = FastAPI()
@app.post('/login')
def login(user: str = Form()):
return {'user': user}
<-python+>
Отправим форму:
<+python+>
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
res = client.post('/login', data={'user': 'user'})
print(res.status_code)
print(res.json())
<-python+>
Результат выполнения кода:
<+python+>
200
{'user': 'user'}
<-python+>
Смотрите также
-
класс
TestClient,
который используется для тестирования приложений FastAPI -
метод
get,
который выполняет GET-запрос в тестах -
метод
put,
который выполняет PUT-запрос в тестах -
метод
delete,
который выполняет DELETE-запрос в тестах