add test case for preserving newlines from stdin
This commit is contained in:
parent
a37abdcbc5
commit
401836d02e
@ -84,8 +84,11 @@ class BlackRunner(CliRunner):
|
|||||||
|
|
||||||
This is a hack that can be removed once we depend on Click 7.x"""
|
This is a hack that can be removed once we depend on Click 7.x"""
|
||||||
|
|
||||||
def __init__(self, stderrbuf: BinaryIO) -> None:
|
def __init__(self) -> None:
|
||||||
self.stderrbuf = stderrbuf
|
self.stderrbuf = BytesIO()
|
||||||
|
self.stdoutbuf = BytesIO()
|
||||||
|
self.stdout_bytes = b""
|
||||||
|
self.stderr_bytes = b""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
@ -96,6 +99,8 @@ def isolation(self, *args: Any, **kwargs: Any) -> Generator[BinaryIO, None, None
|
|||||||
sys.stderr = TextIOWrapper(self.stderrbuf, encoding=self.charset)
|
sys.stderr = TextIOWrapper(self.stderrbuf, encoding=self.charset)
|
||||||
yield output
|
yield output
|
||||||
finally:
|
finally:
|
||||||
|
self.stdout_bytes = sys.stdout.buffer.getvalue()
|
||||||
|
self.stderr_bytes = sys.stderr.buffer.getvalue()
|
||||||
sys.stderr = hold_stderr
|
sys.stderr = hold_stderr
|
||||||
|
|
||||||
|
|
||||||
@ -160,8 +165,7 @@ def test_black(self) -> None:
|
|||||||
|
|
||||||
def test_piping(self) -> None:
|
def test_piping(self) -> None:
|
||||||
source, expected = read_data("../black", data=False)
|
source, expected = read_data("../black", data=False)
|
||||||
stderrbuf = BytesIO()
|
result = BlackRunner().invoke(
|
||||||
result = BlackRunner(stderrbuf).invoke(
|
|
||||||
black.main,
|
black.main,
|
||||||
["-", "--fast", f"--line-length={ll}"],
|
["-", "--fast", f"--line-length={ll}"],
|
||||||
input=BytesIO(source.encode("utf8")),
|
input=BytesIO(source.encode("utf8")),
|
||||||
@ -179,9 +183,8 @@ def test_piping_diff(self) -> None:
|
|||||||
source, _ = read_data("expression.py")
|
source, _ = read_data("expression.py")
|
||||||
expected, _ = read_data("expression.diff")
|
expected, _ = read_data("expression.diff")
|
||||||
config = THIS_DIR / "data" / "empty_pyproject.toml"
|
config = THIS_DIR / "data" / "empty_pyproject.toml"
|
||||||
stderrbuf = BytesIO()
|
|
||||||
args = ["-", "--fast", f"--line-length={ll}", "--diff", f"--config={config}"]
|
args = ["-", "--fast", f"--line-length={ll}", "--diff", f"--config={config}"]
|
||||||
result = BlackRunner(stderrbuf).invoke(
|
result = BlackRunner().invoke(
|
||||||
black.main, args, input=BytesIO(source.encode("utf8"))
|
black.main, args, input=BytesIO(source.encode("utf8"))
|
||||||
)
|
)
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
@ -244,11 +247,8 @@ def test_expression_diff(self) -> None:
|
|||||||
rf"{re.escape(str(tmp_file))}\t\d\d\d\d-\d\d-\d\d "
|
rf"{re.escape(str(tmp_file))}\t\d\d\d\d-\d\d-\d\d "
|
||||||
rf"\d\d:\d\d:\d\d\.\d\d\d\d\d\d \+\d\d\d\d"
|
rf"\d\d:\d\d:\d\d\.\d\d\d\d\d\d \+\d\d\d\d"
|
||||||
)
|
)
|
||||||
stderrbuf = BytesIO()
|
|
||||||
try:
|
try:
|
||||||
result = BlackRunner(stderrbuf).invoke(
|
result = BlackRunner().invoke(black.main, ["--diff", str(tmp_file)])
|
||||||
black.main, ["--diff", str(tmp_file)]
|
|
||||||
)
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
finally:
|
finally:
|
||||||
os.unlink(tmp_file)
|
os.unlink(tmp_file)
|
||||||
@ -1219,6 +1219,18 @@ def test_preserves_line_endings(self) -> None:
|
|||||||
if nl == "\n":
|
if nl == "\n":
|
||||||
self.assertNotIn(b"\r\n", updated_contents)
|
self.assertNotIn(b"\r\n", updated_contents)
|
||||||
|
|
||||||
|
def test_preserves_line_endings_via_stdin(self) -> None:
|
||||||
|
for nl in ["\n", "\r\n"]:
|
||||||
|
contents = nl.join(["def f( ):", " pass"])
|
||||||
|
runner = BlackRunner()
|
||||||
|
result = runner.invoke(
|
||||||
|
black.main, ["-", "--fast"], input=BytesIO(contents.encode("utf8"))
|
||||||
|
)
|
||||||
|
output = runner.stdout_bytes
|
||||||
|
self.assertIn(nl.encode("utf8"), output)
|
||||||
|
if nl == "\n":
|
||||||
|
self.assertNotIn(b"\r\n", output)
|
||||||
|
|
||||||
def test_assert_equivalent_different_asts(self) -> None:
|
def test_assert_equivalent_different_asts(self) -> None:
|
||||||
with self.assertRaises(AssertionError):
|
with self.assertRaises(AssertionError):
|
||||||
black.assert_equivalent("{}", "None")
|
black.assert_equivalent("{}", "None")
|
||||||
|
Loading…
Reference in New Issue
Block a user