跳转到主要内容

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 (6.3 kB 查看哈希值)

上传时间

构建分布

hs_dbus_signature-0.7-py3-none-any.whl (5.0 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面