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 参数

fastapi 的 TestClient 的 delete 方法如何传递请求体?

相比之下,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

回到顶部