X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5fb5cc8c2bd5a0bb1359fb69cdb705b55afade52..afff418fa185b6bf9152e13aa7d65c150ee65dac:/tests/test_black.py?ds=sidebyside

diff --git a/tests/test_black.py b/tests/test_black.py
index 1dda5fc..ec7a883 100644
--- a/tests/test_black.py
+++ b/tests/test_black.py
@@ -1,7 +1,10 @@
 #!/usr/bin/env python3
 from functools import partial
+from io import StringIO
+import os
 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 +13,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
@@ -45,7 +48,8 @@ class BlackTestCase(unittest.TestCase):
     maxDiff = None
 
     def assertFormatEqual(self, expected: str, actual: str) -> None:
-        if actual != expected:
+        if actual != expected and not os.environ.get('SKIP_AST_PRINT'):
+            bdv: black.DebugVisitor[Any]
             black.out('Expected tree:', fg='green')
             try:
                 exp_node = black.lib2to3_parse(expected)
@@ -69,8 +73,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 +82,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 = '<stdin>'
+            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 +106,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 +172,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 +247,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")