X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/e9d4e7b67f359114ba57ecf0c1300f7eb4f08950..70af20eb503ff0fcf00f9fd190a9dcfc40cd7be0:/tests/test_black.py diff --git a/tests/test_black.py b/tests/test_black.py index e6a6647..66aa360 100644 --- a/tests/test_black.py +++ b/tests/test_black.py @@ -35,6 +35,7 @@ ff = partial(black.format_file_in_place, mode=black.FileMode(), fast=True) fs = partial(black.format_str, mode=black.FileMode()) THIS_FILE = Path(__file__) THIS_DIR = THIS_FILE.parent +DETERMINISTIC_HEADER = "[Deterministic header]" EMPTY_LINE = "# EMPTY LINE WITH WHITESPACE" + " (this comment will be removed)" PY36_ARGS = [ f"--target-version={version.name.lower()}" for version in black.PY36_VERSIONS @@ -259,7 +260,7 @@ class BlackTestCase(unittest.TestCase): black.main, args, input=BytesIO(source.encode("utf8")) ) self.assertEqual(result.exit_code, 0) - actual = diff_header.sub("[Deterministic header]", result.output) + actual = diff_header.sub(DETERMINISTIC_HEADER, result.output) actual = actual.rstrip() + "\n" # the diff output has a trailing space self.assertEqual(expected, actual) @@ -340,7 +341,7 @@ class BlackTestCase(unittest.TestCase): finally: os.unlink(tmp_file) actual = result.output - actual = diff_header.sub("[Deterministic header]", actual) + actual = diff_header.sub(DETERMINISTIC_HEADER, actual) actual = actual.rstrip() + "\n" # the diff output has a trailing space if expected != actual: dump = black.dump_to_file(actual) @@ -613,6 +614,14 @@ class BlackTestCase(unittest.TestCase): black.assert_equivalent(source, actual) black.assert_stable(source, actual, black.FileMode()) + @patch("black.dump_to_file", dump_to_stderr) + def test_fmtonoff3(self) -> None: + source, expected = read_data("fmtonoff3") + actual = fs(source) + self.assertFormatEqual(expected, actual) + black.assert_equivalent(source, actual) + black.assert_stable(source, actual, black.FileMode()) + @patch("black.dump_to_file", dump_to_stderr) def test_remove_empty_parentheses_after_class(self) -> None: source, expected = read_data("class_blank_parentheses") @@ -769,6 +778,13 @@ class BlackTestCase(unittest.TestCase): "2 files would be reformatted, 3 files would be left unchanged, " "2 files would fail to reformat.", ) + report.check = False + report.diff = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, " + "2 files would fail to reformat.", + ) def test_report_quiet(self) -> None: report = black.Report(quiet=True) @@ -856,6 +872,13 @@ class BlackTestCase(unittest.TestCase): "2 files would be reformatted, 3 files would be left unchanged, " "2 files would fail to reformat.", ) + report.check = False + report.diff = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, " + "2 files would fail to reformat.", + ) def test_report_normal(self) -> None: report = black.Report() @@ -946,6 +969,13 @@ class BlackTestCase(unittest.TestCase): "2 files would be reformatted, 3 files would be left unchanged, " "2 files would fail to reformat.", ) + report.check = False + report.diff = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, " + "2 files would fail to reformat.", + ) def test_lib2to3_parse(self) -> None: with self.assertRaises(black.InvalidInput): @@ -1531,6 +1561,7 @@ class BlackTestCase(unittest.TestCase): # outside of the `root` directory. path.iterdir.return_value = [child] child.resolve.return_value = Path("/a/b/c") + child.as_posix.return_value = "/a/b/c" child.is_symlink.return_value = True try: list( @@ -1689,6 +1720,27 @@ class BlackDTestCase(AioHTTPTestCase): self.assertEqual(response.status, 200) self.assertEqual(await response.text(), expected) + @skip_if_exception("ClientOSError") + @unittest.skipUnless(has_blackd_deps, "blackd's dependencies are not installed") + @unittest_run_loop + async def test_blackd_diff(self) -> None: + diff_header = re.compile( + rf"(In|Out)\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" + ) + + source, _ = read_data("blackd_diff.py") + expected, _ = read_data("blackd_diff.diff") + + response = await self.client.post( + "/", data=source, headers={blackd.DIFF_HEADER: "true"} + ) + self.assertEqual(response.status, 200) + + actual = await response.text() + actual = diff_header.sub(DETERMINISTIC_HEADER, actual) + self.assertEqual(actual, expected) + @skip_if_exception("ClientOSError") @unittest.skipUnless(has_blackd_deps, "blackd's dependencies are not installed") @unittest_run_loop