From 172a496132fa367aa10a19baae8abbf1378fb9bd Mon Sep 17 00:00:00 2001 From: Vishwas B Sharma Date: Sat, 21 Apr 2018 01:53:28 -0700 Subject: [PATCH] [#149] Make check and diff not mutually exclusive --- black.py | 6 +----- tests/test_black.py | 9 +++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/black.py b/black.py index 49a5729f588..f9e048f104f 100644 --- a/black.py +++ b/black.py @@ -184,12 +184,8 @@ def main( sources.append(Path("-")) else: err(f"invalid path: {s}") - if check and diff: - exc = click.ClickException("Options --check and --diff are mutually exclusive") - exc.exit_code = 2 - raise exc - if check: + if check and not diff: write_back = WriteBack.NO elif diff: write_back = WriteBack.DIFF diff --git a/tests/test_black.py b/tests/test_black.py index fc310690cce..2e1c6416b61 100644 --- a/tests/test_black.py +++ b/tests/test_black.py @@ -595,6 +595,15 @@ def test_write_cache_write_fail(self) -> None: mock.side_effect = OSError black.write_cache({}, []) + def test_check_diff_use_together(self) -> None: + with cache_dir() as workspace: + src = (workspace / "test.py").resolve() + with src.open("w") as fobj: + fobj.write("print('hello_bad_indented')") + result = CliRunner().invoke(black.main, [str(src), "--diff", "--check"]) + self.assertEqual(result.exit_code, 0) + self.assertFalse(black.CACHE_FILE.exists()) + if __name__ == "__main__": unittest.main()