67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
"""cobol_testgen --black-box CLI 参数解析测试"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")))
|
|
|
|
from cobol_testgen import _extract_black_box_args
|
|
|
|
|
|
def test_black_box_dir_consumed(tmp_path):
|
|
d = tmp_path / "prog"
|
|
d.mkdir()
|
|
args = ["--black-box", str(d), "src.cbl", "out"]
|
|
do, arg = _extract_black_box_args(args)
|
|
assert do is True
|
|
assert arg == str(d)
|
|
assert args == ["src.cbl", "out"]
|
|
|
|
|
|
def test_black_box_bare_does_not_consume_source():
|
|
args = ["--black-box", "src.cbl", "out"]
|
|
do, arg = _extract_black_box_args(args)
|
|
assert do is True
|
|
assert arg is None
|
|
assert args == ["src.cbl", "out"]
|
|
|
|
|
|
def test_black_box_equals_form():
|
|
args = ["--black-box=bbdir", "src.cbl"]
|
|
do, arg = _extract_black_box_args(args)
|
|
assert do is True
|
|
assert arg == "bbdir"
|
|
assert args == ["src.cbl"]
|
|
|
|
|
|
def test_no_black_box():
|
|
args = ["--no-black-box", "src.cbl"]
|
|
do, arg = _extract_black_box_args(args)
|
|
assert do is False
|
|
assert arg is None
|
|
assert args == ["src.cbl"]
|
|
|
|
|
|
def test_no_flags_leaves_args_untouched():
|
|
args = ["src.cbl", "out"]
|
|
do, arg = _extract_black_box_args(args)
|
|
assert do is False
|
|
assert arg is None
|
|
assert args == ["src.cbl", "out"]
|
|
|
|
|
|
def test_black_box_nonexistent_dir_consumed():
|
|
args = ["--black-box", "no/such/dir", "src.cbl", "out"]
|
|
do, arg = _extract_black_box_args(args)
|
|
assert do is True
|
|
assert arg == "no/such/dir"
|
|
assert args == ["src.cbl", "out"]
|
|
|
|
|
|
def test_no_black_box_resets_arg():
|
|
args = ["--black-box", "bbdir", "--no-black-box", "src.cbl"]
|
|
do, arg = _extract_black_box_args(args)
|
|
assert do is False
|
|
assert arg is None
|
|
assert args == ["src.cbl"]
|