click.testing.CliRunner和处理SIGINT / SIGTERM信号

时间:2019-12-11 21:31:28

标签: python pytest python-click

我想添加一些关于我的cli应用如何处理不同信号(SIGTERM等)的测试。而且我正在与pytest一起使用本机测试解决方案click.testing.CliRunner

测试看起来非常标准和简单

def test_breaking_process(server, runner):

    address = server.router({'^/$': Page("").exists().slow()})

    runner = CliRunner(mix_stderr=True)
    args = [address, '--no-colors', '--no-progress']
    result = runner.invoke(main, args)
    assert result.exit_code == 0

在这里,我被困住了,如何发送SIGTERMrunner.invoke中进行处理?如果使用e2e测试(调用可执行程序而不是CLIrunner),我认为这样做没有问题,但是我想尝试实现这一点(至少能够发送os.kill)

有办法吗?

1 个答案:

答案 0 :(得分:1)

因此,如果要测试可点击的应用程序以处理不同的信号,则可以执行下一个步骤。

lifecycle