我有一个可以执行操作的管理命令,或者可以返回sys.exit()
。
我正在尝试在我的单元测试中处理第二种情况:
with self.assertRaises(SystemExit) as cm:
call_command('geocode_practices', *args, **opts)
self.assertEqual(cm.exception, 1)
但是这给了我:
AssertionError: None != 1
我做错了什么?
此外,处理不同场景的最佳方法是什么?目前,如果脚本没有退出,我的测试将失败。
答案 0 :(得分:2)
显然,with
块中的代码不会引发异常。请注意,sys.exit()
只会引发SystemExit
例外。
即使它确实如此,异常也不会等于1.如果不是None
,则cm.exception
属性包含异常实例,而不是数字。