gpt4 book ai didi

python Fabric : Fail on a Series of Commands

转载 作者:太空宇宙 更新时间:2023-11-04 03:57:54 25 4
gpt4 key购买 nike

在标准织物示例中,我们有

def test():
with settings(warn_only=True):
result = local('./manage.py test my_app', capture=True)
if result.failed and not confirm("Tests failed. Continue anyway?"):
abort("Aborting at user request.")

有什么方法可以检查整个方法的状态吗?

例如,

def method1():
run_this_as_sudo
run_this_as_sudo

我如何检查整个方法是否在 fabric 中失败,而不是查看每个单独的方法调用?处理这个问题的唯一方法是在由多个 shell 命令组成的每个方法上添加某种 try catch 吗?

最佳答案

你可以这样做:

╭─mgoose@Macintosh  ~
╰─$ fab -f tmp.py test
Ok
Something failed

Done.
╭─mgoose@Macintosh ~
╰─$ cat tmp.py
from fabric.api import local, task, quiet

@task
def test():
with quiet():
if local("whoami").succeeded and local("echo good").succeeded:
print "Ok"
else:
print "Something failed"


if local("exit 1").succeeded and local("echo good").succeeded:
print "Ok"
else:
print "Something failed"

我只是在条件中将调用链接在一起,并使用它们返回的 bool 值来进行条件切换。

关于 python Fabric : Fail on a Series of Commands,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17330089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com