Skip to content

Commit

Permalink
Change exit code to 2 when config file doesn't exist (#1361)
Browse files Browse the repository at this point in the history
Fixes #1360, where an invalid config file causes a return/exit code of 1. This
change means this case is caught earlier, treated like any other bad
parameters, and results in an exit code of 2.

Co-authored-by: Toby Fleming <tobywf@users.noreply.github.com>
  • Loading branch information
tobywf and tobywf committed Apr 30, 2020
1 parent 8126b4f commit 7a14a37
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion black.py
Expand Up @@ -394,7 +394,7 @@ def target_version_option_callback(
@click.option(
"--config",
type=click.Path(
exists=False, file_okay=True, dir_okay=False, readable=True, allow_dash=False
exists=True, file_okay=True, dir_okay=False, readable=True, allow_dash=False
),
is_eager=True,
callback=read_pyproject_toml,
Expand Down
10 changes: 10 additions & 0 deletions tests/test_black.py
Expand Up @@ -1645,6 +1645,16 @@ def test_blackd_main(self) -> None:
raise result.exception
self.assertEqual(result.exit_code, 0)

def test_invalid_config_return_code(self) -> None:
tmp_file = Path(black.dump_to_file())
try:
tmp_config = Path(black.dump_to_file())
tmp_config.unlink()
args = ["--config", str(tmp_config), str(tmp_file)]
self.invokeBlack(args, exit_code=2, ignore_config=False)
finally:
tmp_file.unlink()


class BlackDTestCase(AioHTTPTestCase):
async def get_application(self) -> web.Application:
Expand Down

0 comments on commit 7a14a37

Please sign in to comment.