有人有使用 Python Zeep 和 Mock 对 SOAP API 进行单元测试的示例吗?

我正在构建一个 Python 应用程序,它使用 Python-zeep 访问第 3 方 SOAP API。我想使用模拟响应来实现一些单元测试,因为我并不总是有一个实时服务器来运行我的测试。


我是单元测试的新手,不太确定从哪里开始。我已经看到在请求库中使用模拟的示例,但不确定如何将其转换为 Zeep。


在我的一个模型上,我有一种方法可以从 SOAP API 获取所有 DevicePool。这是相关代码的摘录(我使用辅助方法来提供服务对象,因为我计划在许多其他方法中使用它)。


# Get Zeep Service Object to make AXL API calls

service = get_axl_client(self)


# Get list of all DevicePools present in the cluster

resp = service.listDevicePool(searchCriteria={'name': '%'},

                              returnedTags={'name': '', 'uuid': ''})

我想模拟 resp 对象,但是这是 zeep.objects.ListDevicePoolRes 类型(一种基于 WSDL 解析的动态类型),我不能只用静态值实例化一个对象。


也许我在这里走错了路,必须更深入地模拟 zeep 库的一些内部结构,并在 zeep 解析 XML 之前替换请求响应?


如果有人有类似的例子,将不胜感激。


莫回无
浏览 259回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python