X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/c85cb48ec2cfdee2e742b59855e38431ff8ed46a..1ec7544ab74caa080d6597c13bcc5927b75aca41:/tests/test_black.py

diff --git a/tests/test_black.py b/tests/test_black.py
index 223c907..c11fca0 100644
--- a/tests/test_black.py
+++ b/tests/test_black.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python3
 from functools import partial
 from pathlib import Path
-from typing import List, Tuple
+from typing import Any, List, Tuple
 import unittest
 from unittest.mock import patch
 
@@ -46,6 +46,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)
@@ -108,6 +109,14 @@ 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_fstring(self) -> None:
+        source, expected = read_data('fstring')
+        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_comments(self) -> None:
         source, expected = read_data('comments')
@@ -153,10 +162,10 @@ class BlackTestCase(unittest.TestCase):
         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):
@@ -215,6 +224,24 @@ class BlackTestCase(unittest.TestCase):
             )
             self.assertEqual(report.return_code, 123)
 
+    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")
+        self.assertTrue(black.is_python36(node))
+        node = black.lib2to3_parse("def f(*, arg): f'string'\n")
+        self.assertTrue(black.is_python36(node))
+        source, expected = read_data('function')
+        node = black.lib2to3_parse(source)
+        self.assertTrue(black.is_python36(node))
+        node = black.lib2to3_parse(expected)
+        self.assertTrue(black.is_python36(node))
+        source, expected = read_data('expression')
+        node = black.lib2to3_parse(source)
+        self.assertFalse(black.is_python36(node))
+        node = black.lib2to3_parse(expected)
+        self.assertFalse(black.is_python36(node))
+
 
 if __name__ == '__main__':
     unittest.main()