Python:在单元测试中处理sys.exit?

时间:2015-06-19 16:50:04

标签: python unit-testing

我有一个可以执行操作的管理命令,或者可以返回sys.exit()

我正在尝试在我的单元测试中处理第二种情况:

    with self.assertRaises(SystemExit) as cm:
        call_command('geocode_practices', *args, **opts)
    self.assertEqual(cm.exception, 1)

但是这给了我:

AssertionError: None != 1

我做错了什么?

此外,处理不同场景的最佳方法是什么?目前,如果脚本没有退出,我的测试将失败。

1 个答案:

答案 0 :(得分:2)

显然,with块中的代码不会引发异常。请注意,sys.exit()只会引发SystemExit例外。

即使它确实如此,异常也不会等于1.如果不是None,则cm.exception属性包含异常实例,而不是数字。