]>
git.madduck.net Git - etc/vim.git/blobdiff - tests/test_black.py
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
source, expected = read_data("../black", data=False)
stderrbuf = BytesIO()
result = BlackRunner(stderrbuf).invoke(
source, expected = read_data("../black", data=False)
stderrbuf = BytesIO()
result = BlackRunner(stderrbuf).invoke(
- black.main, ["-", "--fast", f"--line-length={ll}"], input=source
+ black.main,
+ ["-", "--fast", f"--line-length={ll}"],
+ input=BytesIO(source.encode("utf8")),
)
self.assertEqual(result.exit_code, 0)
self.assertFormatEqual(expected, result.output)
)
self.assertEqual(result.exit_code, 0)
self.assertFormatEqual(expected, result.output)
config = THIS_DIR / "data" / "empty_pyproject.toml"
stderrbuf = BytesIO()
args = ["-", "--fast", f"--line-length={ll}", "--diff", f"--config={config}"]
config = THIS_DIR / "data" / "empty_pyproject.toml"
stderrbuf = BytesIO()
args = ["-", "--fast", f"--line-length={ll}", "--diff", f"--config={config}"]
- result = BlackRunner(stderrbuf).invoke(black.main, args, input=source)
+ result = BlackRunner(stderrbuf).invoke(
+ black.main, args, input=BytesIO(source.encode("utf8"))
+ )
self.assertEqual(result.exit_code, 0)
actual = diff_header.sub("[Deterministic header]", result.output)
actual = actual.rstrip() + "\n" # the diff output has a trailing space
self.assertEqual(result.exit_code, 0)
actual = diff_header.sub("[Deterministic header]", result.output)
actual = actual.rstrip() + "\n" # the diff output has a trailing space
self.assertEqual(set(), black.get_future_imports(node))
node = black.lib2to3_parse("from some.module import black\n")
self.assertEqual(set(), black.get_future_imports(node))
self.assertEqual(set(), black.get_future_imports(node))
node = black.lib2to3_parse("from some.module import black\n")
self.assertEqual(set(), black.get_future_imports(node))
+ node = black.lib2to3_parse(
+ "from __future__ import unicode_literals as _unicode_literals"
+ )
+ self.assertEqual({"unicode_literals"}, black.get_future_imports(node))
+ node = black.lib2to3_parse(
+ "from __future__ import unicode_literals as _lol, print"
+ )
+ self.assertEqual({"unicode_literals", "print"}, black.get_future_imports(node))
def test_debug_visitor(self) -> None:
source, _ = read_data("debug_visitor.py")
def test_debug_visitor(self) -> None:
source, _ = read_data("debug_visitor.py")
def test_no_cache_when_stdin(self) -> None:
mode = black.FileMode.AUTO_DETECT
with cache_dir():
def test_no_cache_when_stdin(self) -> None:
mode = black.FileMode.AUTO_DETECT
with cache_dir():
- result = CliRunner().invoke(black.main, ["-"], input="print('hello')")
+ result = CliRunner().invoke(
+ black.main, ["-"], input=BytesIO(b"print('hello')")
+ )
self.assertEqual(result.exit_code, 0)
cache_file = black.get_cache_file(black.DEFAULT_LINE_LENGTH, mode)
self.assertFalse(cache_file.exists())
self.assertEqual(result.exit_code, 0)
cache_file = black.get_cache_file(black.DEFAULT_LINE_LENGTH, mode)
self.assertFalse(cache_file.exists())
src1 = (THIS_DIR / "data" / "string_quotes.py").resolve()
result = CliRunner().invoke(black.main, [str(src1), "--diff", "--check"])
self.assertEqual(result.exit_code, 1, result.output)
src1 = (THIS_DIR / "data" / "string_quotes.py").resolve()
result = CliRunner().invoke(black.main, [str(src1), "--diff", "--check"])
self.assertEqual(result.exit_code, 1, result.output)
# Files which will not be reformatted.
src2 = (THIS_DIR / "data" / "composition.py").resolve()
result = CliRunner().invoke(black.main, [str(src2), "--diff", "--check"])
self.assertEqual(result.exit_code, 0, result.output)
# Files which will not be reformatted.
src2 = (THIS_DIR / "data" / "composition.py").resolve()
result = CliRunner().invoke(black.main, [str(src2), "--diff", "--check"])
self.assertEqual(result.exit_code, 0, result.output)
# Multi file command.
result = CliRunner().invoke(
black.main, [str(src1), str(src2), "--diff", "--check"]
# Multi file command.
result = CliRunner().invoke(
black.main, [str(src1), str(src2), "--diff", "--check"]
def test_pipe_force_pyi(self) -> None:
source, expected = read_data("force_pyi")
def test_pipe_force_pyi(self) -> None:
source, expected = read_data("force_pyi")
- result = CliRunner().invoke(black.main, ["-", "-q", "--pyi"], input=source)
+ result = CliRunner().invoke(
+ black.main, ["-", "-q", "--pyi"], input=BytesIO(source.encode("utf8"))
+ )
self.assertEqual(result.exit_code, 0)
actual = result.output
self.assertFormatEqual(actual, expected)
self.assertEqual(result.exit_code, 0)
actual = result.output
self.assertFormatEqual(actual, expected)
def test_pipe_force_py36(self) -> None:
source, expected = read_data("force_py36")
def test_pipe_force_py36(self) -> None:
source, expected = read_data("force_py36")
- result = CliRunner().invoke(black.main, ["-", "-q", "--py36"], input=source)
+ result = CliRunner().invoke(
+ black.main, ["-", "-q", "--py36"], input=BytesIO(source.encode("utf8"))
+ )
self.assertEqual(result.exit_code, 0)
actual = result.output
self.assertFormatEqual(actual, expected)
self.assertEqual(result.exit_code, 0)
actual = result.output
self.assertFormatEqual(actual, expected)
test_file.write_bytes(contents.encode())
ff(test_file, write_back=black.WriteBack.YES)
updated_contents: bytes = test_file.read_bytes()
test_file.write_bytes(contents.encode())
ff(test_file, write_back=black.WriteBack.YES)
updated_contents: bytes = test_file.read_bytes()
- self.assertIn(nl.encode(), updated_contents) # type: ignore
+ self.assertIn(nl.encode(), updated_contents)
- self.assertNotIn(b"\r\n", updated_contents) # type: ignore
+ self.assertNotIn(b"\r\n", updated_contents)
def test_assert_equivalent_different_asts(self) -> None:
with self.assertRaises(AssertionError):
black.assert_equivalent("{}", "None")
def test_symlink_out_of_root_directory(self) -> None:
def test_assert_equivalent_different_asts(self) -> None:
with self.assertRaises(AssertionError):
black.assert_equivalent("{}", "None")
def test_symlink_out_of_root_directory(self) -> None:
path = MagicMock()
root = THIS_DIR
child = MagicMock()
include = re.compile(black.DEFAULT_INCLUDES)
exclude = re.compile(black.DEFAULT_EXCLUDES)
report = black.Report()
path = MagicMock()
root = THIS_DIR
child = MagicMock()
include = re.compile(black.DEFAULT_INCLUDES)
exclude = re.compile(black.DEFAULT_EXCLUDES)
report = black.Report()
-
- # set the behavior of mock arguments
- # child should behave like a symlink which resolved path is clearly
- # outside of the root directory
+ # `child` should behave like a symlink which resolved path is clearly
+ # outside of the `root` directory.
path.iterdir.return_value = [child]
child.resolve.return_value = Path("/a/b/c")
child.is_symlink.return_value = True
path.iterdir.return_value = [child]
child.resolve.return_value = Path("/a/b/c")
child.is_symlink.return_value = True
-
- # call the method
- # it should not raise any error
- list(black.gen_python_files_in_dir(path, root, include, exclude, report))
-
- # check the call of the methods of the mock objects
+ try:
+ list(black.gen_python_files_in_dir(path, root, include, exclude, report))
+ except ValueError as ve:
+ self.fail("`get_python_files_in_dir()` failed: {ve}")
path.iterdir.assert_called_once()
child.resolve.assert_called_once()
child.is_symlink.assert_called_once()
path.iterdir.assert_called_once()
child.resolve.assert_called_once()
child.is_symlink.assert_called_once()
-
- # set the behavior of mock arguments
- # child should behave like a strange file which resolved path is clearly
- # outside of the root directory
+ # `child` should behave like a strange file which resolved path is clearly
+ # outside of the `root` directory.
child.is_symlink.return_value = False
child.is_symlink.return_value = False
-
- # call the method
- # it should raise a ValueError
with self.assertRaises(ValueError):
list(black.gen_python_files_in_dir(path, root, include, exclude, report))
with self.assertRaises(ValueError):
list(black.gen_python_files_in_dir(path, root, include, exclude, report))
-
- # check the call of the methods of the mock objects
path.iterdir.assert_called()
self.assertEqual(path.iterdir.call_count, 2)
child.resolve.assert_called()
path.iterdir.assert_called()
self.assertEqual(path.iterdir.call_count, 2)
child.resolve.assert_called()