断言库(骨架)灵感来自“assertpy”,但没有电池

simple-assertions的Python项目详细描述


简单断言

断言库(骨架)灵感来自assertpy,但没有电池!还允许将所有断言转换为警告,就像延迟断言一样。在

Build Status

动机

assertpy是一个很漂亮的库,但是由于我的需要太多了,我真的很喜欢 assertpy所以我创建了一个新模块,原因如下

请检查tests/test_*.py中的用例。在

  1. 我希望assert_warn是动态的,也就是说,在给定的条件下,所有断言都将转换为 警告。
    • 我添加了ASSERT_ERROR_AS_WARNING变量,它可以做到这一点!在
    • 修改了要使的assert_thatAPI是基于调用的assert_that(.., as_warn=True)
  2. 扩展是可能的,但我想要更直观的逻辑
    • 我公开了SimpleAssertions类,并继承它来添加新方法
  3. assert_thatassertpy中创建类的新实例,并在每个 打电话给我,我不想那样!
    • 通过公开SimpleAssertion类,您只需将其作为断言类的一部分

Note: earlier i used assert_that keyword from assertpy but i felt like it's copying from other library , so i changed assert_that to check, while reading this gives same amount of experience but saved 6 chars!

安装

pip install simple-assertions

使用

请检查tests文件以了解更多用法这里只是基本用法

作为函数

只需导入check函数,然后就可以。。。在

^{pr2}$

作为实例

fromsimple_assertionsimportSimpleAssertionsclassYourTestClass:def__init__(self):self.check=SimpleAssertions().checkdeftest_something(self):self.check(4+10).is_equal_to(14)self.check(1).is_instance_of(int)self.check(3,"lucky_num",as_warn=True).is_equal_to(4)

添加自己的电池

fromsimple_assertionsimportSimpleAssertionsfromtypingimportUnionclassYourAssertions(SimpleAssertions):def__init__(self,as_warn=False,logger=None):super().__init__(as_warn,logger)defis_greater_than(self,other:Union[int,float]):ifself.val_to_chk.val<other:self.raise_err(self.compare_err_msg(other,"to be greater than"))returnselfclassYourTestClass:def__init__(self):self.check=YourAssertions().checkdeftest_something(self):self.check(4+10).is_greater_than(10).is_equal_to(14)self.check(1).is_instance_of(int)self.check(3,"lucky_num",as_warn=True).is_equal_to(4)

虽然只检查了unittests,但它应该可以与pytest或{a4}一起使用。在

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

推荐PyPI第三方库


热门话题
尝试连接到Red5服务器时出现java问题   java实现Runnable的类被认为是ExecutorServices的“Runnable任务”?   java struts2类中的多个@validation   java未能应用插件[class'org.gradle.api.plugins.scala.ScalaBasePlugin']:gradle v2。13   如何使用Java流仅收集长度最大的元素?   从spring引导应用程序连接到firestore的java引发空指针异常   java从SQLite插入和获取真实数据类型会为连续插入获取空值吗?   当存在未知数量的空格时,使用java替代正向查找   部署如何为当今的浏览器部署java小程序(小程序、嵌入、对象)?   @OneToMany和@ManyToOne@Formula之间的java双向关系返回null   java为什么在我的例子中,协议缓冲区的性能比JSON差?   如何部署混合C++/Java(JNI)应用程序?   java如何在程序中显示字符串的完整信息。反恐精英?   java在Hibernate中从持久性上下文中分离实体中的实体