vcr.py的python unittest集成

vcrpy-unittest的Python项目详细描述


PyPIBuild StatusCoverage ReportPython VersionsGitter

此包提供VCRTestCase用于 VCR.py和Python的可敬的unittest

安装

PyPI:安装

pip install vcrpy-unittest

用法

继承自VCRTestCase,用于自动录制和回放http 互动。

fromvcr_unittestimportVCRTestCaseimportrequestsclassMyTestCase(VCRTestCase):deftest_something(self):response=requests.get('http://example.com')

类似于vcr.py从上下文管理器返回磁带的方式, VCRTestCase使磁带可用作self.cassette

self.assertEqual(len(self.cassette),1)self.assertEqual(self.cassette.requests[0].uri,'http://example.com')

默认情况下,磁带将放在 测试,根据测试类和方法命名。例如,上面的测试 会读写cassettes/MyTestCase.test_something.yaml

可以通过重写子类上的方法来修改配置: _get_vcr_kwargs_get_cassette_library_dir_get_cassette_name。 要在实例化后修改VCR对象,例如添加匹配器, 您可以挂接_get_vcr,例如:

classMyTestCase(VCRTestCase):def_get_vcr(self,**kwargs):myvcr=super(MyTestCase,self)._get_vcr(**kwargs)myvcr.register_matcher('mymatcher',mymatcher)myvcr.match_on=['mymatcher']returnmyvcr

the source 对于这些方法的默认实现,以及VCR.py对于更多 信息。

VCRMIXIN < EH3> 如果继承的原因很难,因为存在 包含基类中的测试的类层次结构,继承自VCRMixin 相反。

fromvcr_unittestimportVCRMixinimportrequestsimportunittestclassMyTestMixin(VCRMixin):deftest_something(self):response=requests.get(self.url)classMyTestCase(MyTestMixin,unittest.TestCase):url='http://example.com'

兼容性

VCRTestCase支持vcr.py支持的python版本的子集。 特别是python 2.6被排除在外,因为它缺少TestCase.addCleanup。 使用tearDown添加对Python2.6的支持非常简单,但是 实现是脆弱的,因为它依赖于 继承链。而不是承担这个额外的复杂性,Python 2.6是 只是暂时排除在外。

许可证

这个库使用mit许可证,它与vcr.py相同。有关详细信息,请参见LICENSE.txt 细节。

致谢

感谢@kevin1024VCR.py@IvanMalison为他的 对这个方案的建设性评论。也要感谢@nedbat对他的post regarding unittest and context managers, 为了httreplay@davepeck 这对我很有帮助。

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

推荐PyPI第三方库


热门话题
java使用无循环和乘法的递归调用查找值   java字符串大小冲突   在一组Java文件对象中查找唯一的超级目录   没有Eclipse控制台输出窗口(Java)?   java这怎么等于105而不是15?   java Adempiere列调出,用于不处理从(代码)选项导入和创建行的字段   java tomcat、2个webapps、2个log4js,但这两个应用都记录到一个文件中   lambda理解Java谓词   HotspotFX上的Java EOF问题   java google应用程序引擎:如何向连接/断开通道“ping”添加信息?   java如何使用VTDXML获取一个元素的所有名称空间声明?   java如何使用drawLine()获得一条线以随机方向拍摄?   java transactionManager应该使用哪个SessionFactory?   java在安卓上播放声音   在Mac上使用JBDC对SQL Server进行java Windows身份验证   java基本列表和字符串[]   java NamedParameterJdbcTemplate从中选择*   扩展上的java Android可扩展列表视图   使用ApacheAxis2的java SOAP附件