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第三方库


热门话题
java根据选择随机设置图标   java如何将Android Studio与本地服务器数据库SQL server 2008连接?   java在点击鼠标后绘制一个椭圆形   java选项窗格相对于其父项的位置   java如何在Android中的switch case中使用String[]输入?   安卓无法从“15.0.1”确定java版本   如果满足特定条件,java是否重置计时器?   java是一个实体类,可以在OOAD中返回其他实体实例吗?   bash将对jar文件| cut | awk和java程序的调用集成到一个统一进程中   Spring安全更新身份验证成功时的最后登录日期   数据库身份验证中基于Java控制台的客户端服务器登录应用程序错误   java Selenium junit测试失败,驱动程序过早获取URL   java LibGdx多点触摸事件混淆   带扫描仪的java打印空间   来自旧版应用程序的java springcloudsleuth头   java如何实现模板设计模式?   java如何比较具有多个值的键的两个映射?   读取时R中的java MemoryError。xlsx