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语法。