跳转到主要内容

用于合约测试的Python库

项目描述

ycontract

PyPI PyPI - Python Version pipeline status coverage report PyPI - License

Python库,用于合约测试。

此库提供了检查函数的参数(in_contract)和返回值(out_contract)的函数。

如何安装

$ pip install ycontract

示例

示例文件在此处(测试文件)https://gitlab.com/yassu/ycontract.py/-/blob/master/tests/test_contract.py

主要示例是

from ycontract import contract, out_contract

@contract(lambda a, b: a * b > 0)
def add(a, b, c):
    return a + b


@contract(returns=lambda res: res > 0)
def sub(a, b):
    return a - b

有关in_contract的更复杂示例是

@contract(
    lambda a0: a0 > 0,
    lambda a1, b: a1 > 0 and b > 0,
    {
        "a2": lambda x: x > 0,
        "a3": [
            lambda x: x >= 0,
            lambda x: x < 4,
        ],
        ("a4", "a5"): lambda x, y: x > 0 and y > 0,
    },
    b=lambda x: x > 0,
    contract_tag="tagtag",
)
def add_for_complex(a0, a1, a2, a3, a4, a5, b=1):
    return a0 + a1 + a2 + a3 + a4 + a5 + b

此外,如果您想禁用,请调用

ycontract.disable_contract()

许可证

Apache 2.0

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ycontract-0.3.3.2.tar.gz (10.2 kB 查看哈希值)

上传时间 源代码

构建分发

ycontract-0.3.3.2-py3-none-any.whl (11.5 kB 查看哈希值)

上传时间 Python 3

由以下支持