基于棒棒糖模式的假设库生成随机测试数据

lollipop-hypothesis的Python项目详细描述


License: MITBuild StatusPyPI

利用基于棒棒糖模式的假设生成随机测试数据的库。

示例

fromcollectionsimportnamedtupleimportlollipop.typesasltimportlollipop.validatorsaslvimportstringEMAIL_REGEXP=r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]{2,}\.[a-zA-Z0-9-.]{2,}$"Email=lt.validated_type(lt.String,'Email',lv.Regexp(EMAIL_REGEXP))User=namedtuple('User',['name','email','age'])USER=lt.Object({'name':lt.String(validate=lv.Length(min=1)),'email':Email(),'age':lt.Optional(lt.Integer(validate=lv.Range(min=18))),},constructor=User)importhypothesisashimporthypothesis.strategiesashsimportlollipop_hypothesisaslh# Write a test using data generation strategy based on Lollipop schema@h.given(lh.type_strategy(USER))deftest_can_register_any_valid_user(user):register(user)# Configure custom strategy for Email typelh.register(Email,lambda_,type,context=None: \
        hs.tuples(hs.text('abcdefghijklmnopqrstuvwxyz''ABCDEFGHIJKLMNOPQRSTUVWXYZ''0123456789''_.+-',min_size=1),hs.lists(hs.text('abcdefghijklmnopqrstuvwxyz''ABCDEFGHIJKLMNOPQRSTUVWXYZ''0123456789',min_size=2),min_size=2,average_size=3,)).map(lambda(name,domain_parts):name+'@'+'.'.join(domain_parts)),)# Or configure custom strategy for the whole type instancelh.register(USER,lambdaregistry,type,context=None: \
        hs.builds(User,name=hs.text(min_size=1),email=registry.convert(Email(),context),age=hs.integers(min_value=0,max_value=100),))

安装

$ pip install lollipop-hypothesis

# install optional package for regex support
$ pip install lollipop-hypothesis[regex]

要求

许可证

麻省理工学院许可。有关详细信息,请参见捆绑的LICENSE文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从tester类访问/更改ArrayList?   java如何在Android中以编程方式更改菜单标题   spring boot在Kafka Java中为同一主题创建多个消费者组   java JVM字节码表示法,注释语法。调用动力学   java活动在旋转后泄漏了窗口PopupWindow   java允许Nashorn运行用户代码   Java Joda Time实现一个日期范围迭代器   当字符串长度为奇数时使用递归打印字符串的java基本情况   java无法从JSONArray获取JSONObject   java有没有一种方法可以使用单个示例文件进行所有测试?   java My bufferedReader读取整个文件,而不仅仅是一行。为什么?   当已有用户输入时,java变量为null   java如何将正则表达式与阿拉伯语文本一起使用   java Selenium WebDriver“单击”和JavascriptExecutor单击之间有什么区别   java在运行代码时,排序方法会在第二个数组应该按升序或降序排序时打印相同的精确数组号   java如何在HashMap中添加多个具有相同键的相同类型的对象   java有人知道为什么菜单栏在使用系统gtk主题时会显示白色文本吗?   在tomcat中用java方法访问JavaScript文件