) -> None:
runner = BlackRunner()
if ignore_config:
- args = ["--config", str(THIS_DIR / "empty.toml"), *args]
+ args = ["--verbose", "--config", str(THIS_DIR / "empty.toml"), *args]
result = runner.invoke(black.main, args)
- self.assertEqual(result.exit_code, exit_code, msg=runner.stderr_bytes.decode())
+ self.assertEqual(
+ result.exit_code,
+ exit_code,
+ msg=f"Failed with args: {args}. Stderr: {runner.stderr_bytes.decode()!r}",
+ )
@patch("black.dump_to_file", dump_to_stderr)
def checkSourceFile(self, name: str) -> None:
actual = actual.rstrip() + "\n" # the diff output has a trailing space
self.assertEqual(expected, actual)
+ def test_piping_diff_with_color(self) -> None:
+ source, _ = read_data("expression.py")
+ config = THIS_DIR / "data" / "empty_pyproject.toml"
+ args = [
+ "-",
+ "--fast",
+ f"--line-length={black.DEFAULT_LINE_LENGTH}",
+ "--diff",
+ "--color",
+ f"--config={config}",
+ ]
+ result = BlackRunner().invoke(
+ black.main, args, input=BytesIO(source.encode("utf8"))
+ )
+ actual = result.output
+ # Again, the contents are checked in a different test, so only look for colors.
+ self.assertIn("\033[1;37m", actual)
+ self.assertIn("\033[36m", actual)
+ self.assertIn("\033[32m", actual)
+ self.assertIn("\033[31m", actual)
+ self.assertIn("\033[0m", actual)
+
@patch("black.dump_to_file", dump_to_stderr)
def test_function(self) -> None:
source, expected = read_data("function")
)
self.assertEqual(expected, actual, msg)
+ def test_expression_diff_with_color(self) -> None:
+ source, _ = read_data("expression.py")
+ expected, _ = read_data("expression.diff")
+ tmp_file = Path(black.dump_to_file(source))
+ try:
+ result = BlackRunner().invoke(
+ black.main, ["--diff", "--color", str(tmp_file)]
+ )
+ finally:
+ os.unlink(tmp_file)
+ actual = result.output
+ # We check the contents of the diff in `test_expression_diff`. All
+ # we need to check here is that color codes exist in the result.
+ self.assertIn("\033[1;37m", actual)
+ self.assertIn("\033[36m", actual)
+ self.assertIn("\033[32m", actual)
+ self.assertIn("\033[31m", actual)
+ self.assertIn("\033[0m", actual)
+
@patch("black.dump_to_file", dump_to_stderr)
def test_fstring(self) -> None:
source, expected = read_data("fstring")
black.assert_stable(source, not_normalized, mode=mode)
@patch("black.dump_to_file", dump_to_stderr)
+ def test_docstring(self) -> None:
+ source, expected = read_data("docstring")
+ actual = fs(source)
+ self.assertFormatEqual(expected, actual)
+ black.assert_equivalent(source, actual)
+ black.assert_stable(source, actual, black.FileMode())
+
def test_long_strings(self) -> None:
"""Tests for splitting long strings."""
source, expected = read_data("long_strings")
mock.side_effect = OSError
black.write_cache({}, [], mode)
+ @patch("black.ProcessPoolExecutor", autospec=True)
+ def test_works_in_mono_process_only_environment(self, executor: MagicMock) -> None:
+ self.skipTest("this test fails when run with the rest of the suite")
+ executor.side_effect = OSError()
+ with cache_dir() as workspace:
+ for f in [
+ (workspace / "one.py").resolve(),
+ (workspace / "two.py").resolve(),
+ ]:
+ f.write_text("print('hello')")
+ self.invokeBlack([str(workspace)])
+
@event_loop(close=False)
def test_check_diff_use_together(self) -> None:
with cache_dir():
]
this_abs = THIS_DIR.resolve()
sources.extend(
- black.gen_python_files_in_dir(
- path, this_abs, include, exclude, report, gitignore
+ black.gen_python_files(
+ path.iterdir(), this_abs, include, [exclude], report, gitignore
)
)
self.assertEqual(sorted(expected), sorted(sources))
]
this_abs = THIS_DIR.resolve()
sources.extend(
- black.gen_python_files_in_dir(
- path, this_abs, include, exclude, report, gitignore
+ black.gen_python_files(
+ path.iterdir(), this_abs, include, [exclude], report, gitignore
)
)
self.assertEqual(sorted(expected), sorted(sources))
]
this_abs = THIS_DIR.resolve()
sources.extend(
- black.gen_python_files_in_dir(
- path,
+ black.gen_python_files(
+ path.iterdir(),
this_abs,
empty,
- re.compile(black.DEFAULT_EXCLUDES),
+ [re.compile(black.DEFAULT_EXCLUDES)],
report,
gitignore,
)
]
this_abs = THIS_DIR.resolve()
sources.extend(
- black.gen_python_files_in_dir(
- path,
+ black.gen_python_files(
+ path.iterdir(),
this_abs,
re.compile(black.DEFAULT_INCLUDES),
- empty,
+ [empty],
report,
gitignore,
)
child.is_symlink.return_value = True
try:
list(
- black.gen_python_files_in_dir(
- path, root, include, exclude, report, gitignore
+ black.gen_python_files(
+ path.iterdir(), root, include, exclude, report, gitignore
)
)
except ValueError as ve:
child.is_symlink.return_value = False
with self.assertRaises(ValueError):
list(
- black.gen_python_files_in_dir(
- path, root, include, exclude, report, gitignore
+ black.gen_python_files(
+ path.iterdir(), root, include, exclude, report, gitignore
)
)
path.iterdir.assert_called()