dbus签名假设策略生成器
项目描述
此包包含一个用于生成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): ...
使用参数省略字典
>>> 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): ...
备注
Hypothesis测试库的文档可以在http://hypothesis.readthedocs.io找到。
该策略利用了Hypothesis高阶策略recursive(),相关内容在此处讨论:http://hypothesis.works/articles/recursive-data/。
它仅支持Python 3,因为它只使用Python 3语法。
下游打包者,如果将测试集成到他们的打包中,建议只使用test_deterministic.py模块中的测试,以避免因Hypothesis测试的非确定性行为而产生的测试失败。
项目详情
关闭
hs-dbus-signature-0.7.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 34d9d37125fe2bccd4fac8f5401775de1eda11737d56a96d24c3560ae86067a2 |
|
MD5 | 32d009502f1eefc9701791676e6cdaaa |
|
BLAKE2b-256 | 11ee72d996c8902d3b631b79fa9f3a2e6edd8956505f13dee4ef1fe07b64ba03 |
关闭
hs_dbus_signature-0.7-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6fcd70449896d043dfa6e1a7047b9a1ead40adfdd2156c30ed47b8542828f83f |
|
MD5 | e4a638d89444452d245f91628cf14c5b |
|
BLAKE2b-256 | 801c10c0294c96a36c43d2783b33a0873d8217b5944f8bea6e46807d8e860bf2 |