X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/1b189f6cdeca7b1f9669e0152c92875dff7b761a..51756a405cd6006ef22e9c12f212905fe0907f80:/tests/test_black.py?ds=inline diff --git a/tests/test_black.py b/tests/test_black.py index e654d0d..c10dd1d 100644 --- a/tests/test_black.py +++ b/tests/test_black.py @@ -11,6 +11,7 @@ from tempfile import TemporaryDirectory from typing import Any, List, Tuple, Iterator import unittest from unittest.mock import patch +import re from click import unstyle from click.testing import CliRunner @@ -851,6 +852,53 @@ class BlackTestCase(unittest.TestCase): actual = result.output self.assertFormatEqual(actual, expected) + def test_include_exclude(self) -> None: + path = THIS_DIR / "include_exclude_tests" + include = re.compile(r"\.pyi?$") + exclude = re.compile(r"/exclude/|/\.definitely_exclude/") + sources: List[Path] = [] + expected = [ + Path(THIS_DIR / "include_exclude_tests/b/dont_exclude/a.py"), + Path(THIS_DIR / "include_exclude_tests/b/dont_exclude/a.pyi"), + ] + sources.extend(black.gen_python_files_in_dir(path, include, exclude)) + self.assertEqual(sorted(expected), sorted(sources)) + + def test_empty_include(self) -> None: + path = THIS_DIR / "include_exclude_tests" + empty = re.compile(r"") + sources: List[Path] = [] + sources.extend( + black.gen_python_files_in_dir( + path, empty, re.compile(black.DEFAULT_EXCLUDES) + ) + ) + self.assertEqual([], (sources)) + + def test_empty_exclude(self) -> None: + path = THIS_DIR / "include_exclude_tests" + empty = re.compile(r"") + sources: List[Path] = [] + expected = [ + Path(THIS_DIR / "include_exclude_tests/b/dont_exclude/a.py"), + Path(THIS_DIR / "include_exclude_tests/b/dont_exclude/a.pyi"), + Path(THIS_DIR / "include_exclude_tests/b/exclude/a.py"), + Path(THIS_DIR / "include_exclude_tests/b/exclude/a.pyi"), + Path(THIS_DIR / "include_exclude_tests/b/.definitely_exclude/a.py"), + Path(THIS_DIR / "include_exclude_tests/b/.definitely_exclude/a.pyi"), + ] + sources.extend( + black.gen_python_files_in_dir( + path, re.compile(black.DEFAULT_INCLUDES), empty + ) + ) + self.assertEqual(sorted(expected), sorted(sources)) + + def test_invalid_include_exclude(self) -> None: + for option in ["--include", "--exclude"]: + result = CliRunner().invoke(black.main, ["-", option, "**()(!!*)"]) + self.assertEqual(result.exit_code, 2) + if __name__ == "__main__": unittest.main()