提供一个适配器,用于模拟用于单元测试的http请求。

requests-testadapter的Python项目详细描述


https://secure.travis-ci.org/ambv/requests-testadapter.png

当前是一个非常基本的模块,它为模拟单元网络活动的requests提供适配器 测试目的。

如何使用

这段代码假设您的http客户机是以一种能够传递 自定义Session 反对。在这种情况下,您只需将适配器安装到 回答特定前缀:

>>> import requests
>>> from requests_testadapter import TestAdapter
>>> s = requests.Session()
>>> s.mount('http://', TestAdapter(b'Mock!', status=404))
>>> r = s.get('http://mocked.com')
>>> r.status_code
404
>>> r.text
'Mock!'

您还可以将headers字典指定为 TestAdapter

测试会话

requests1.2.0和更低版本中,装入适配器的顺序是 不可预知的。以确保可以用它们自己的路径装载任意路径 各自的适配器,使用TestSession,它总是匹配最长的 前缀:

>>> from requests_testadapter import TestAdapter, TestSession
>>> s = TestSession()
>>> s.mount('http://git', TestAdapter(b'git'))
>>> s.mount('http://github', TestAdapter(b'github'))
>>> s.mount('http://github.com', TestAdapter(b'github.com'))
>>> s.mount('http://github.com/about/', TestAdapter(b'github.com/about'))
>>> r = s.get('http://github.com/about/')
>>> r.text
u'github.com/about'
>>> r = s.get('http://github.com')
>>> r.text
u'github.com'
>>> r = s.get('http://gittip.com')
>>> r.text
u'git'

TestSession没有连接http和https的默认处理程序,因此 如果您的请求无意中试图访问外部 单元测试中的网站:

>>> r = s.get('http://bitbucket.org')
Traceback (most recent call last):
...
requests.exceptions.InvalidSchema: No connection adapters were found for
'http://bitbucket.org/'

如何运行测试?

最简单的方法是提取源tarball并运行:

$ python test/test_testadapter.py

如果系统上有所有兼容的python实现,则 可以使用tox:

$ pip install tox
$ tox
GLOB sdist-make: setup.py
py26 inst-nodeps: .tox/dist/requests-testadapter-0.1.0.zip
py26 runtests: commands[0]
..
----------------------------------------------------------------------
Ran 2 tests in 0.014s

OK
py27 inst-nodeps: .tox/dist/requests-testadapter-0.1.0.zip
py27 runtests: commands[0]
..
----------------------------------------------------------------------
Ran 2 tests in 0.014s

OK
py32 inst-nodeps: .tox/dist/requests-testadapter-0.1.0.zip
py32 runtests: commands[0]
..
----------------------------------------------------------------------
Ran 2 tests in 0.024s

OK
py33 inst-nodeps: .tox/dist/requests-testadapter-0.1.0.zip
py33 runtests: commands[0]
..
----------------------------------------------------------------------
Ran 2 tests in 0.017s

OK
_______________________________ summary ______________________________
  py26: commands succeeded
  py27: commands succeeded
  py32: commands succeeded
  py33: commands succeeded
  congratulations :)

更改日志

0.3.0

  • 修复了与requests1.2.1+的兼容性问题

0.2.0

  • 引入了TestSession以使适配器顺序在^{tt3}中可预测$ 1.2及以上
  • TestAdapter不再预取response.content如果 stream=True被传递给请求。这允许用户读取 response.raw她自己。

0.1.0

  • 初始发布版本

作者

Łukasz Langa粘合在一起。其他修复程序 卢克·斯奈林格。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaEclipseMars没有保存首选项   java梯度同步失败:原因:启动失败:   java如何从嵌套的JSON获取数据?   java如何判断可观察对象中的任何对象满足一个条件?   java将字符串转换为保持相同值的byte[]数组   java有没有办法绕过AuditingEntityListener为测试设置数据?   从/usr/share/java中解析linux JAR依赖关系   安卓 My java函数抛出nullpointerexception?   java Gradle使用正确版本的依赖项   JBoss和Java6中带注释的WebService中的web服务ClassCastException   java如何修复codename one中的简单逻辑错误?   java如何迭代矩阵的索引?   java如何在JPanel不可见时将其保存为图像?   java HashMap如何在Kotlin中实现MutableMap接口?   javascript如何在单击后加载特定片段?   EclipseJava为纳什均衡获取所有玩家/策略组合   JavaSpring:Web服务REST在JSON上产生双反斜杠   java为什么ServletContext#getRealPath(“/”)返回相对路径?   java当我的游戏应该重新启动时,我应该如何处理重置SurfaceView和线程?