fastapi 的 TestClient 的 delete 方法如何传递请求体?
接口
@meta.delete('', summary='删除指定母本', description='在请求体中传递一系列 meta_uuid, 返回已删除的母本的 meta_uuid', response_model=list[str])def delete_meta(
meta_uuids: list[str]
):
pass
单元测试
client = TestClient(app)response = client.delete(
f'/meta',
json=[
f'{meta_uuid}'
]
)
但是报错了
Traceback (most recent call last): File "/Users/ponponon/Desktop/code/work/vddb/svddb_api/testing/apps/test_meta.py", line 121, in test_collection_meta_001
response = client.delete(
TypeError: TestClient.delete() got an unexpected keyword argument 'json'
看了一下这个函数签名不支持 json 或者 data 参数
相比之下,requests 的 delete 是支持的传递 json 或者 data 的
怎么办?
回答:
用requests库:
response = requests.delete( 'http://localhost:8000/meta',
json=[
f'{meta_uuid}'
]
)
或者:
用POST请求替代DELETE请求:
@meta.post('/delete', summary='删除指定母本', description='在请求体中传递一系列 meta_uuid, 返回已删除的母本的 meta_uuid', response_model=list[str])def delete_meta(
meta_uuids: list[str]
):
pass
以上是 fastapi 的 TestClient 的 delete 方法如何传递请求体? 的全部内容, 来源链接: utcz.com/p/939001.html