Skip to content

Commit 2afb7cc

Browse files
hukkinj1westurnerchrisjsewell
authored
🐛 FIX: cli.parse: return 0 for non-error (#124)
Co-authored-by: Taneli Hukkinen <hukkinj1@users.noreply.github.com> Co-authored-by: Wes Turner <wes@wrd.nu> Co-authored-by: Wes Turner <50891+westurner@users.noreply.github.com> Co-authored-by: Chris Sewell <chrisj_sewell@hotmail.com>
1 parent ea891e2 commit 2afb7cc

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

markdown_it/cli/parse.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
version_str = "markdown-it-py [version {}]".format(__version__)
1616

1717

18-
def main(args: Optional[Sequence[str]] = None) -> bool:
18+
def main(args: Optional[Sequence[str]] = None) -> int:
1919
namespace = parse_args(args)
2020
if namespace.filenames:
2121
convert(namespace.filenames)
2222
else:
2323
interactive()
24-
return True
24+
return 0
2525

2626

2727
def convert(filenames: Iterable[str]) -> None:
@@ -38,7 +38,8 @@ def convert_file(filename: str) -> None:
3838
rendered = MarkdownIt().render(fin.read())
3939
print(rendered, end="")
4040
except OSError:
41-
sys.exit('Cannot open file "{}".'.format(filename))
41+
sys.stderr.write(f'Cannot open file "{filename}".\n')
42+
sys.exit(1)
4243

4344

4445
def interactive() -> None:
@@ -103,4 +104,5 @@ def print_heading() -> None:
103104

104105

105106
if __name__ == "__main__":
106-
main(sys.argv[1:])
107+
exit_code = main(sys.argv[1:])
108+
sys.exit(exit_code)

tests/test_cli.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,22 @@
22
import tempfile
33
from unittest.mock import patch
44

5+
import pytest
6+
57
from markdown_it.cli import parse
68

79

810
def test_parse():
911
with tempfile.TemporaryDirectory() as tempdir:
1012
path = pathlib.Path(tempdir).joinpath("test.md")
1113
path.write_text("a b c")
12-
assert parse.main([str(path)])
14+
assert parse.main([str(path)]) == 0
15+
16+
17+
def test_parse_fail():
18+
with pytest.raises(SystemExit) as exc_info:
19+
parse.main(["/tmp/nonexistant_path/for_cli_test.md"])
20+
assert exc_info.value.code == 1
1321

1422

1523
def test_print_heading():

0 commit comments

Comments
 (0)