#!/usr/bin/env python3
import asyncio
from concurrent.futures import ThreadPoolExecutor
-from contextlib import contextmanager
+from contextlib import contextmanager, redirect_stderr
from functools import partial, wraps
from io import BytesIO, TextIOWrapper
import os
msg = (
f"Expected diff isn't equal to the actual. If you made changes "
f"to expression.py and this is an anticipated difference, "
- f"overwrite tests/expression.diff with {dump}"
+ f"overwrite tests/data/expression.diff with {dump}"
)
self.assertEqual(expected, actual, msg)
black.assert_equivalent(source, actual)
black.assert_stable(source, actual, line_length=ll)
+ @patch("black.dump_to_file", dump_to_stderr)
+ def test_comments6(self) -> None:
+ source, expected = read_data("comments6")
+ actual = fs(source)
+ self.assertFormatEqual(expected, actual)
+ black.assert_equivalent(source, actual)
+ black.assert_stable(source, actual, line_length=ll)
+
@patch("black.dump_to_file", dump_to_stderr)
def test_cantfit(self) -> None:
source, expected = read_data("cantfit")
black.assert_equivalent(source, actual)
black.assert_stable(source, actual, line_length=ll)
+ def test_comment_indentation(self) -> None:
+ contents_tab = "if 1:\n\tif 2:\n\t\tpass\n\t# comment\n\tpass\n"
+ contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n"
+
+ self.assertFormatEqual(fs(contents_spc), contents_spc)
+ self.assertFormatEqual(fs(contents_tab), contents_spc)
+
+ contents_tab = "if 1:\n\tif 2:\n\t\tpass\n\t\t# comment\n\tpass\n"
+ contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n"
+
+ self.assertFormatEqual(fs(contents_tab), contents_spc)
+ self.assertFormatEqual(fs(contents_spc), contents_spc)
+
def test_report_verbose(self) -> None:
report = black.Report(verbose=True)
out_lines = []
@unittest.skipUnless(has_blackd_deps, "blackd's dependencies are not installed")
@async_test
async def test_blackd_fast(self) -> None:
- app = blackd.make_app()
- async with TestClient(TestServer(app)) as client:
- response = await client.post("/", data=b"ur'hello'")
- self.assertEqual(response.status, 500)
- self.assertIn("failed to parse source file", await response.text())
- response = await client.post(
- "/", data=b"ur'hello'", headers={blackd.FAST_OR_SAFE_HEADER: "fast"}
- )
- self.assertEqual(response.status, 200)
+ with open(os.devnull, "w") as dn, redirect_stderr(dn):
+ app = blackd.make_app()
+ async with TestClient(TestServer(app)) as client:
+ response = await client.post("/", data=b"ur'hello'")
+ self.assertEqual(response.status, 500)
+ self.assertIn("failed to parse source file", await response.text())
+ response = await client.post(
+ "/", data=b"ur'hello'", headers={blackd.FAST_OR_SAFE_HEADER: "fast"}
+ )
+ self.assertEqual(response.status, 200)
@unittest.skipUnless(has_blackd_deps, "blackd's dependencies are not installed")
@async_test