我想为我的API模拟ConnectionError。我正在为一个软件创建一个python包,如果在localhost:8080
上运行,它将正确地给予结果。但如果软件没有运行,那么我想抓住它。我可以使用httpx.ConnectError
编写函数来获取这个异常,但是我如何编写测试呢?
我的功能是这样的
def get_workspace(self, workspace: str) -> Union[WorkspaceModel, GSResponse]:
try:
Client = self.http_client
responses = Client.get(f"workspaces/{workspace}")
if responses.status_code == 200:
return WorkspaceModel.parse_obj(responses.json())
else :
results = self.response_recognise(responses)
return results
except httpx.TimeoutException as exc:
res = {}
res['code'] = 504
res['response'] = "Timeout Error"
return GSResponse.parse_obj(res)
except httpx.NetworkError as exc:
res = {}
res['code'] = 503
res['response'] = "Geoserver unavailable"
return GSResponse.parse_obj(res)
1条答案
按热度按时间wljmcqd81#
使用pytest-httpx,您可以模拟httpx引发任何类型的异常,这要归功于httpx_mock。add_exception。
你的测试用例看起来应该是这样的: