#!/usr/bin/env python3
import asyncio
+from concurrent.futures import ThreadPoolExecutor
from contextlib import contextmanager
from functools import partial
from io import StringIO
self.assertTrue(ff(tmp_file, write_back=black.WriteBack.DIFF))
sys.stdout.seek(0)
actual = sys.stdout.read()
- actual = actual.replace(tmp_file.name, "<stdin>")
+ actual = actual.replace(str(tmp_file), "<stdin>")
finally:
sys.stdout = hold_stdout
os.unlink(tmp_file)
@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")
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()