diff --git a/test/test_pseudo_python_cli.py b/test/test_pseudo_python_cli.py index 2a4d5562..7a90cda9 100644 --- a/test/test_pseudo_python_cli.py +++ b/test/test_pseudo_python_cli.py @@ -20,13 +20,35 @@ def make_dict(**kwargs): ("-m ipykernel_launcher -f FILE", make_dict(module="ipykernel_launcher", args=shlex.split("-f FILE"))), + ("-", make_dict(script="-")), + ("- a", make_dict(script="-", args=["a"])), + ("script", make_dict(script="script")), + ("script a", make_dict(script="script", args=["a"])), ]) -def test_parse_args(args, desired): +def test_valid_args(args, desired): ns = parse_args(shlex.split(args)) actual = vars(ns) assert actual == desired +@pytest.mark.parametrize("args", [ + "-m", + "-c", + "-i -m", + # They are invalid in python CLI but works in argparse (which is + # probably OK): + pytest.mark.xfail("-V -m"), + pytest.mark.xfail("-h -m"), +]) +def test_invalid_args(args, capsys): + with pytest.raises(SystemExit) as exc_info: + parse_args(shlex.split(args)) + assert exc_info.value.code != 0 + + captured = capsys.readouterr() + assert "usage:" in captured.err + + @pytest.mark.parametrize("cli_args", [ ["-h"], ["-i", "--help"],