【发布时间】:2010-07-19 04:15:27
【问题描述】:
我的 python 应用程序使用 urllib2 向许多 url 发出许多 http 请求。我想构建一个单元测试套件来测试我的数据解析和错误处理代码。
我有一个充满测试数据的目录,其中包含许多文件,每个文件都包含一个 http 响应、标头和响应数据。 (使用 curl -i)在某些情况下,这些文件包含 http 错误消息(需要测试错误处理)
理想情况下,我想创建一个模拟对象来替换 urllib2.urlopen 并返回一个模拟响应对象。
我想知道是否有一种简单的方法可以让 urllib2 直接从文件加载 HTTP 响应并让 urllib2 解析此数据以创建适当的响应对象(就像从 url 读取响应一样。
我尝试使用使用“file://”协议构建的 url,但是文件顶部的 http 响应标头未被正确读取或解析。
另外,我正在考虑编写一个小型 Web 服务器类来提供测试文件,但这似乎比我想要的要多一些工作。让 urllib2 以某种方式从我已经保存在文件中的 http 响应重建响应对象会更容易(无需构建 Web 服务器来再次为它们提供服务)
有什么想法吗?
【问题讨论】: