X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5fb5cc8c2bd5a0bb1359fb69cdb705b55afade52..d1e0d79e38db934a65dded44b903f05ab85829b4:/tests/test_black.py?ds=inline diff --git a/tests/test_black.py b/tests/test_black.py index 1dda5fc..7dba611 100644 --- a/tests/test_black.py +++ b/tests/test_black.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 from functools import partial +from io import StringIO from pathlib import Path -from typing import List, Tuple +import sys +from typing import Any, List, Tuple import unittest from unittest.mock import patch @@ -10,7 +12,7 @@ from click import unstyle import black ll = 88 -ff = partial(black.format_file, line_length=ll, fast=True) +ff = partial(black.format_file_in_place, line_length=ll, fast=True) fs = partial(black.format_str, line_length=ll) THIS_FILE = Path(__file__) THIS_DIR = THIS_FILE.parent @@ -46,6 +48,7 @@ class BlackTestCase(unittest.TestCase): def assertFormatEqual(self, expected: str, actual: str) -> None: if actual != expected: + bdv: black.DebugVisitor[Any] black.out('Expected tree:', fg='green') try: exp_node = black.lib2to3_parse(expected) @@ -69,8 +72,7 @@ class BlackTestCase(unittest.TestCase): self.assertFormatEqual(expected, actual) black.assert_equivalent(source, actual) black.assert_stable(source, actual, line_length=ll) - with self.assertRaises(black.NothingChanged): - ff(THIS_FILE) + self.assertFalse(ff(THIS_FILE)) @patch("black.dump_to_file", dump_to_stderr) def test_black(self) -> None: @@ -79,8 +81,22 @@ class BlackTestCase(unittest.TestCase): self.assertFormatEqual(expected, actual) black.assert_equivalent(source, actual) black.assert_stable(source, actual, line_length=ll) - with self.assertRaises(black.NothingChanged): - ff(THIS_FILE) + self.assertFalse(ff(THIS_DIR / '..' / 'black.py')) + + def test_piping(self) -> None: + source, expected = read_data('../black') + hold_stdin, hold_stdout = sys.stdin, sys.stdout + try: + sys.stdin, sys.stdout = StringIO(source), StringIO() + sys.stdin.name = '' + black.format_stdin_to_stdout(line_length=ll, fast=True, write_back=True) + sys.stdout.seek(0) + actual = sys.stdout.read() + finally: + sys.stdin, sys.stdout = hold_stdin, hold_stdout + 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_setup(self) -> None: @@ -89,8 +105,7 @@ class BlackTestCase(unittest.TestCase): self.assertFormatEqual(expected, actual) black.assert_equivalent(source, actual) black.assert_stable(source, actual, line_length=ll) - with self.assertRaises(black.NothingChanged): - ff(THIS_FILE) + self.assertFalse(ff(THIS_DIR / '..' / 'setup.py')) @patch("black.dump_to_file", dump_to_stderr) def test_function(self) -> None: @@ -156,15 +171,23 @@ class BlackTestCase(unittest.TestCase): black.assert_equivalent(source, actual) black.assert_stable(source, actual, line_length=ll) + @patch("black.dump_to_file", dump_to_stderr) + def test_empty_lines(self) -> None: + source, expected = read_data('empty_lines') + actual = fs(source) + self.assertFormatEqual(expected, actual) + black.assert_equivalent(source, actual) + black.assert_stable(source, actual, line_length=ll) + def test_report(self) -> None: report = black.Report() out_lines = [] err_lines = [] - def out(msg: str, **kwargs): + def out(msg: str, **kwargs: Any) -> None: out_lines.append(msg) - def err(msg: str, **kwargs): + def err(msg: str, **kwargs: Any) -> None: err_lines.append(msg) with patch("black.out", out), patch("black.err", err): @@ -223,7 +246,7 @@ class BlackTestCase(unittest.TestCase): ) self.assertEqual(report.return_code, 123) - def test_is_python36(self): + def test_is_python36(self) -> None: node = black.lib2to3_parse("def f(*, arg): ...\n") self.assertFalse(black.is_python36(node)) node = black.lib2to3_parse("def f(*, arg,): ...\n")