dbus签名假设策略生成器

hs-dbus-signature的Python项目详细描述


这个包包含一个用于生成dbus签名的假设策略。 有关dbus签名的非正式规范,请访问: https://dbus.freedesktop.org/doc/dbus-specification.html

这项战略的目的是既健全又完整。也就是说,它应该 永远不要生成无效的dbus签名,它应该能够,模 生成任何有效dbus签名的大小约束。

用法

导入函数并获取具有默认参数的策略。

>>> from hs_dbus_signature import dbus_signatures
>>> strategy = dbus_signatures()

获取一些有效签名的示例,例如

>>> strategy.example()
''
>>> strategy.example()
'a{ng}'
>>> strategy.example()
'a{xas}a{gah}a{nau}'

在测试中使用该策略,例如

from hypothesis import given

@given(dbus_signatures())
def test(signature):
    ...

使用这些参数可以省略dict

>>> strategy = dbus_signatures(exclude_dicts=True)
>>> strategy.example()
'(gnggg)(n)(gn)(nnnnn)(nn)'

或者确保没有示例签名是空字符串

>>> strategy = dbus_signatures(min_complete_types=1)
>>> strategy.example()
'a{sv}'

如果策略被给定,它将立即引发InvalidArgument异常 不允许举例的论点。

>>> strategy = dbus_signatures(blacklist=string.ascii_lowercase)
Traceback (most recent call last):
...

备注

假设测试库的文档可以在 http://hypothesis.readthedocs.io

此策略使用假设高阶策略,recursive(), 这里讨论的是:http://hypothesis.works/articles/recursive-data/

它只支持Python3,因为它只使用Python3语法。

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

推荐PyPI第三方库


热门话题
如何使用SeleniumWebDriver捕获特定元素的屏幕截图而不是整个页面?   WAS 8.5中的java JAXWS异步IO异常   java Android Studio无法解析数组适配器中的符号项   swing Java在运行时添加和删除按钮   java Spring Boot 2.0。x禁用特定配置文件的安全性   java这是我的最后一个代码,我在“if(Users[B].substring(0,1)==“1”){//Find String Cut Char Function”上遇到错误   单击菜单选项后打开“活动”时发生java错误   java Tic Tac Toe NullPointerException   java如何做数学题。随机进入for循环   java Http状态404错误处理spring mvc   java循环依赖双向@OneToMany JPA关系   java我可以在不重新启动项目的情况下添加servlet吗   java在蓝色/绿色部署中如何管理共享数据库?   这是一个系统。currentTimeMillis()是Java中时间性能的最佳度量?