🐍 テストコードのテスト


私は知っているほとんどすべてのsysadminとして、Pythonはいくつかのスクリプトを行うための選択の言語です.そして、我々が知っているように、テストはどんな開発の重要な部分です.
私のコードは、subprocessを使用しているいくつかのLinuxコマンドと対話する単純なパーサーです.実際には終了コードは2です.PyTestでテストする方法は?これは私がしたことです.
パーサはとても簡単ですが、これはcli.pyです.
from argparse import ArgumentParser

def create_parser():
    parser = ArgumentParser()
    parser.add_argument('list', help='List something')
    ...
    return parser
テスト:
import pytest
from parser import cli

@pytest.fixture
def parser():
    return cli.create_parser()

def test_something_to_test(parser):
    with pytest.raises(SystemExit) as e:
        # The command to test
        parser.parse_args(['some', 'commands'])
    # Here's the trick
    assert e.type == SystemExit
    assert e.value.code == 2