有没有办法阻止处理程序运行?我试图添加标签并使用"--skip-tags"但它不起作用.
我可以添加下一个角色变量reload_service: true
并使用它但我已经开始使用标签,它们非常适合重新运行部分角色.
处理程序通常用于重新启动服务,我希望在不更改角色变量的情况下运行此角色而不启动服务只是为了涵盖下一个案例.
我正在使用 ansible 2.1.2.0
测试用例:
mkdir -p test/role/handlers test/role/tasks
cd test
echo -ne '---\n - command: "echo Test"\n notify: restart\n' > role/tasks/main.yml
echo -ne '---\n- name: restart\n command: "echo Handler"\n tags: [handlers]\n' > role/handlers/main.yml
echo -ne '---\n- hosts: localhost\n gather_facts: false\n roles:\n - role\n' > play.yml
ansible-playbook play.yml --skip-tags handlers
是否有str
可能引发不可调用参数的异常?除了可能__repr__
出于某种原因覆盖的自定义类之外?
我对函数的输入有一些争论,如果不是,str
我将其转换为它。我很好奇我是否必须处理异常,如果必须,哪些是?处理Exception
不是好的做法,但似乎这是唯一的方法。
编辑:不可调用我的意思是参数不在 str 内执行,例如str(get_something_to_convert())
. 在这个例子中,我应该处理内部函数中的异常。
我正在网络和 SO 中搜索诸如“单元测试 sqlalchemy”之类的键,但所有答案都涉及创建真实的数据库(sqlite、postgres)来测试它。当你创建真实的东西时,它不是单元测试。
创建 sqlite DB 与在磁盘上创建文件没有什么不同,但令人惊讶的是人们希望只模拟后者。我试过使用 setUp 和 sys.modules 模拟 db 导入,它可以工作,但它模拟的太多,并且使用模型作为测试对象并非易事(模拟不支持所有需要的东西,例如next)
是否有任何技术可以模拟数据库行为(创建数据库、提交、查询)但仍然可以访问模型以对它们进行基本检查?也许有一些库可以模拟连接?
使用if-else是否有任何区别:
def foo:
if bar:
return baz
else:
return False
Run Code Online (Sandbox Code Playgroud)
或者像这样:
def foo:
if bar:
return baz
return False
Run Code Online (Sandbox Code Playgroud)
?