#!/usr/bin/env python3
import asyncio
+from concurrent.futures import ThreadPoolExecutor
from contextlib import contextmanager
from functools import partial
from io import StringIO
self.assertFormatEqual(expected, actual)
black.assert_equivalent(source, actual)
black.assert_stable(source, actual, line_length=ll)
- self.assertIs(ff(THIS_FILE), black.Changed.NO)
+ self.assertFalse(ff(THIS_FILE))
@patch("black.dump_to_file", dump_to_stderr)
def test_black(self) -> None:
self.assertFormatEqual(expected, actual)
black.assert_equivalent(source, actual)
black.assert_stable(source, actual, line_length=ll)
- self.assertIs(ff(THIS_DIR / ".." / "black.py"), black.Changed.NO)
+ self.assertFalse(ff(THIS_DIR / ".." / "black.py"))
def test_piping(self) -> None:
source, expected = read_data("../black")
self.assertFormatEqual(expected, actual)
black.assert_equivalent(source, actual)
black.assert_stable(source, actual, line_length=ll)
- self.assertIs(ff(THIS_DIR / ".." / "setup.py"), black.Changed.NO)
+ self.assertFalse(ff(THIS_DIR / ".." / "setup.py"))
@patch("black.dump_to_file", dump_to_stderr)
def test_function(self) -> None:
@event_loop(close=False)
def test_cache_multiple_files(self) -> None:
- with cache_dir() as workspace:
+ with cache_dir() as workspace, patch(
+ "black.ProcessPoolExecutor", new=ThreadPoolExecutor
+ ):
one = (workspace / "one.py").resolve()
with one.open("w") as fobj:
fobj.write("print('hello')")
@event_loop(close=False)
def test_failed_formatting_does_not_get_cached(self) -> None:
- with cache_dir() as workspace:
+ with cache_dir() as workspace, patch(
+ "black.ProcessPoolExecutor", new=ThreadPoolExecutor
+ ):
failing = (workspace / "failing.py").resolve()
with failing.open("w") as fobj:
fobj.write("not actually python")
self.assertNotIn(failing, cache)
self.assertIn(clean, cache)
- def test_write_cache_write_fail(self):
+ def test_write_cache_write_fail(self) -> None:
with cache_dir(), patch.object(Path, "open") as mock:
mock.side_effect = OSError
black.write_cache({}, [])
+ def test_check_diff_use_together(self) -> None:
+ with cache_dir():
+ # Files which will be reformatted.
+ src1 = (THIS_DIR / "string_quotes.py").resolve()
+ result = CliRunner().invoke(black.main, [str(src1), "--diff", "--check"])
+ self.assertEqual(result.exit_code, 1)
+
+ # Files which will not be reformatted.
+ src2 = (THIS_DIR / "composition.py").resolve()
+ result = CliRunner().invoke(black.main, [str(src2), "--diff", "--check"])
+ self.assertEqual(result.exit_code, 0)
+
+ # Multi file command.
+ result = CliRunner().invoke(
+ black.main, [str(src1), str(src2), "--diff", "--check"]
+ )
+ self.assertEqual(result.exit_code, 1)
+
if __name__ == "__main__":
unittest.main()