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()