python的简单check runner

checkrunner的Python项目详细描述


python的一个非常简单的check runner。我在需要在执行某些操作(通常是在调用时)之前运行一组检查的项目中使用此选项。这样,检查被保存在一个类中,不需要特殊的逻辑来单独运行它们。

支持Python2和3(在2.7和3.4上测试)。

用法

创建checkrunner的子类并声明您的支票:

from checkrunner import CheckRunner

class MyChecks(CheckRunner):
    @staticmethod
    def check_that_passes():
        return True, 'this check passed!'

    @staticmethod
    def check_that_fails():
        return False, 'this check failed!'

print(MyChecks.run())
# (False, ['this check failed!'])

print(MyChecks.run(return_passed=True))
# (False, ['this check passed!', 'this check failed!'])

当所有的检查都通过时,它将以空列表返回true(除非您设置return_passed):

from checkrunner import CheckRunner

class MyChecks(CheckRunner):
    @staticmethod
    def check_that_passes():
        return True, 'this check passed!'

print(MyChecks.run())
# (True, [])

您可以将关键字参数传递给检查(它们将被发送到每个检查):

from checkrunner import CheckRunner

class MyChecks(CheckRunner):
    @staticmethod
    def check_foo(foo=None):
        if foo:
            return True, foo
        else:
            return False, foo

print(MyChecks.run(foo='bar', return_passed=True))
# (True, ['bar'])

类方法也有效:

from checkrunner import CheckRunner


class MyChecks(CheckRunner):
    foo = 'bar'

    @classmethod
    def check_class(cls):
        return True, cls.foo

print(MyChecks.run(return_passed=True))
# (True, ['bar'])

您也可以在第二个参数中返回您喜欢的任何内容,它不必是字符串。

测试

测试使用的是流浪者,毒物和脓毒性试验。如果您已经有了vagrant,那么您自己运行测试非常简单:

$ vagrant up
$ vagrant ssh
(dev) vagrant@debian-8:~$ cd ~/src
(dev) vagrant@debian-8:~/src$ tox

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

推荐PyPI第三方库


热门话题
java Android HTTPS SSL重用和缓存   JavaSpring动态(可扩展)列表表单   JUnit测试用例失败。JAVAlang.AssertionError:应为:<[I@12c5431>但是:<[I@14b6bed>   elasticsearch在elastic search java中查询文档   java为什么在下面的代码中没有抛出ArrayStoreException?   电子邮件如何通过Java Servlet从激活链接获取数据   “ant debug”不支持在res/values/string外部声明的java重音字符(α、é、ù)   java将字符串转换为反向整数数组   输入如何在java中读取文件时跳过行   java四连接ai Alpha beta minmax   java不使用+、*和否定数字   java如何查找列表中与特定结构匹配的所有字符串?   尝试用Maven在JOOQ中实现EnumConverter时发生java错误   java DateTimeFormatter不能在en语言环境中使用LLLL模式   在MatLab中插入Java代码   java通过websockets上的amqp从kubernetes集群内部连接到azure iot中心   jTextfield数组之间的java操作   java Mockito测试RestClient异步   java如何通过名称字符串获取枚举值